2011-07-27 46 views
5

我試圖得到LocaleDateStringLocaleTimeString這將是的toLocaleString()但LocaleString給你GMT + 0100(GMT夏令時間)我止跌它會被顯示。獲得本地日期字符串和時間字符串

我可以使用類似:

timestamp = (new Date()).toLocaleDateString()+toLocaleTimeString(); 

非常感謝

+0

最好自己格式化。 – RobG

+0

如果可能我可以做到這一點,爲什麼我要格式化它?謝謝 – jQuerybeast

+2

哦,那麼「如何格式化JavaScript日期」將是一個更好的主題。肯尼貝克有你的答案。 :-) – RobG

回答

13

您可以使用本地日期字符串,只需撥動小時,分鐘和秒鐘即可。

本示例使用前導0填充單個數字並調整am/pm的小時數。

function timenow(){ 
    var now= new Date(), 
    ampm= 'am', 
    h= now.getHours(), 
    m= now.getMinutes(), 
    s= now.getSeconds(); 
    if(h>= 12){ 
     if(h>12) h -= 12; 
     ampm= 'pm'; 
    } 

    if(m<10) m= '0'+m; 
    if(s<10) s= '0'+s; 
    return now.toLocaleDateString()+ ' ' + h + ':' + m + ':' + s + ' ' + ampm; 
} 
alert(timenow()); 
+0

這就是我一直在尋找的東西。非常感謝 – jQuerybeast

3

如果您在使用香草的方法建立起來的字符串,它會自動完成語言環境(和TZ)轉換。

例如

var dNow = new Date(); 
var s = dNow.getMonth() + '/' + dNow.getDate() + '/' + dNow.getFullYear() + ' ' + dNow.getHours() + ':' + dNow.getMinutes(); 
+1

謝謝先生。我寧願讓英國或美國的日期取決於用戶。因此,而不是2011年6月27日,他們可以使用它作爲27/6/2011,所以你會推薦dNow.toLocaleDateString()+''+ dNow.getHours()+':'+ dNow.getMinutes(); ? – jQuerybeast

+0

在這種情況下,從直接調用toLocaleString()調用開始,對結果執行regex替換,以刪除不需要的組件或隔離所需的組件。 – Tom