我從服務器的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日期對象,但無法弄清楚如何進行轉換的邏輯。誰能幫我?
我從服務器的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日期對象,但無法弄清楚如何進行轉換的邏輯。誰能幫我?
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
這就是我最終做的。 storArray變量是時間戳爲 – 2010-07-19 15:23:03
的數組中的位置爲什麼不只是追加timezoen並轉換字符串? – Lobo 2011-11-18 22:37:52
function switchFormat(dateString) {
var a = dateString.split('/'),
b;
b = a[0];
a[0] = a[1];
a[1] = b;
return a.join('/');
}
編輯
你真的需要這個日期對象?如果你正在做的是切換,準確的格式的字符串的前兩個部分,
var pieces = str.split('/');
str = pieces[1] + '/' + pieces[0] + '/' + pieces[2];
這對切換格式很有效,但我也需要調整從GMT到本地的時間。 – 2010-07-08 18:49:24
解析日期使用:
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中測試。根據需要在其他瀏覽器中調整:)
我的錯誤:我的分鐘轉換公式是愚蠢的錯誤。它現在按需要工作。 – naikus 2010-07-09 03:13:48
我知道這已經過了一年了,並且有一個可以接受的答案。以防萬一有人來找...
您可以將時區信息附加到格式化的字符串,並創建一個日期對象,以獲得你想要的。
var x = "08/07/2010 11:22:00 AM".split('/');
var d = new Date(x[1] + '/' + x[0] + '/' + x[2] + " GMT");
只是爲了確保我知道你想要什麼,我跑與此相伴的accpeted答案,都返回相同的結果。
該解決方案是否適合您? – naikus 2010-07-14 06:38:14