2010-07-08 55 views
1

我從服務器的SOAP響應獲得的時間戳格式爲歐洲標記格式和GMT時間格式(例如:08/07/2010 11:22:00 AM)。我想將其轉換爲本地時間並將格式更改爲(MM/DD/2010 HH:MM:SS AM/PM)。在JavaScript中將GMT時間戳(DD/MM/YYYY)轉換爲本地時間(MM/DD/YYYY)

我知道JavaScript日期對象,但無法弄清楚如何進行轉換的邏輯。誰能幫我?

+0

該解決方案是否適合您? – naikus 2010-07-14 06:38:14

回答

0
var serverTimestamp = storArray[a][0]; 
var pieces = serverTimestamp.split('/'); 
storArray[a][0] = pieces[1] + '/' + pieces[0] + '/' + pieces[2]; 
var gmt = new Date(storArray[a][0]); 
var localTime = gmt.getTime() - (gmt.getTimezoneOffset() * 60000); // convert gmt date to minutes 
var localDate = new Date(localTime); // convert it into a date 
+0

這就是我最終做的。 storArray變量是時間戳爲 – 2010-07-19 15:23:03

+0

的數組中的位置爲什麼不只是追加timezoen並轉換字符串? – Lobo 2011-11-18 22:37:52

0
function switchFormat(dateString) { 
    var a = dateString.split('/'), 
     b; 
    b = a[0]; 
    a[0] = a[1]; 
    a[1] = b; 
    return a.join('/'); 
} 

編輯

Try it here

1

你真的需要這個日期對象?如果你正在做的是切換,準確的格式的字符串的前兩個部分,

var pieces = str.split('/'); 
str = pieces[1] + '/' + pieces[0] + '/' + pieces[2]; 
+0

這對切換格式很有效,但我也需要調整從GMT到本地的時間。 – 2010-07-08 18:49:24

1

解析日期使用:

Date.parse("08/07/2010 11:22:00 AM"); 

要轉換GMT日期本地日期(一個在瀏覽器或用戶代理的js)使用以下功能:

 function getLocalTime(gmt) { 
     var min = gmt.getTime()/1000/60; // convert gmt date to minutes 
     var localNow = new Date().getTimezoneOffset(); // get the timezone 
                 // offset in minutes    
     var localTime = min - localNow; // get the local time 
     return new Date(localTime * 1000 * 60); // convert it into a date 
    } 

    var dt = new Date(Date.parse("08/07/2010 11:22:00 AM")); 
    var localDate = getLocalTime(dt); 

接下來是日期格式,這是很簡單的。在新獲得的(當地)日期上調用以下功能:

localDate.getXXX(); // where XXX is Hour, Minutes, etc. 

注意:在FF中測試。根據需要在其他瀏覽器中調整:)

+0

我的錯誤:我的分鐘轉換公式是愚蠢的錯誤。它現在按需要工作。 – naikus 2010-07-09 03:13:48

1

我知道這已經過了一年了,並且有一個可以接受的答案。以防萬一有人來找...

您可以將時區信息附加到格式化的字符串,並創建一個日期對象,以獲得你想要的。

var x = "08/07/2010 11:22:00 AM".split('/'); 
var d = new Date(x[1] + '/' + x[0] + '/' + x[2] + " GMT"); 

jsfiddle

只是爲了確保我知道你想要什麼,我跑與此相伴的accpeted答案,都返回相同的結果。

相關問題