2013-07-11 22 views
4

獲取日期:JS在我創建了一個JS的日期,像這樣的UTC時間

var myDate = new Date('2013-01-01 00:00:00'); 

我假設JS爲UTC時間讀取該英寸但是當我做一些像myDate.getTime()這樣的事情時,返回的時間戳就像是4AM GMT時間。

這是爲什麼?我如何獲得UTC時間的午夜時間?

+1

可能的重複數據刪除的作品根本。com/questions/948532/how-do-you-convert-a-javascript-date-to-utc – stackErr

+0

好資源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date?redirectlocale = zh-CN&redirectslug = JavaScript%2FReference%2FGlobal_Objects%2FDate – DevlshOne

+0

您基於哪個時區? –

回答

0

JS讀取您的計算機使用的時區。

您可以嘗試使用myDate.toUTCString()獲取UTC時間的日期。

如果你想獲得時間戳使用myDate.getTime()

2

至少在Chrome中,這個工程:

var myDate = new Date('2013-01-01 00:00:00 UTC');

如果你把GMT而不是UTC它也適用。但我不知道這是否足夠跨瀏覽器。

2

我住在印度。因此,我的時區是印度標準時間(IST),它在tz數據庫中列爲Asia/Kolkata。印度比格林威治標準提前5小時30分鐘。因此,當我執行new Date("2013-01-01 00:00:00") GMT時的實際時間爲"2012-12-31 18:30:00"

我相信你住在美國,因爲你在EST時區(GMT-04:00)?我對嗎?

如果你想在格林尼治標準時間而不是本地時區來解析時間,那麼這樣做:

new Date("2013-01-01T00:00:00+00:00"); 

注意資本的日期和時間,以及+00:00末之間T。這是用於解析特定時區中給定時間的格式。


鑑於日期字符串"2013-01-01 00:00:00"您可以使用下面的函數將其轉換爲所需的格式:

function formatDateString(string, timezone) { 
    return string.replace(" ", "T") + timezone; 
} 

然後你就可以創建如下日期:

new Date(formatDateString("2013-01-01 00:00:00", "+00:00")); 

另一種方式將本地時間轉換爲GMT時間如下:

var timezone = new Date("1970-01-01 00:00:00"); // this is the start of unix time 

現在,你有你自己的本地時區的日期對象,你可以這樣做:

new Date(new Date("2013-01-01 00:00:00") - timezone); 

所有上述方法產生的格林尼治標準時間相同的日期。 HTTP://計算器

+0

除了最後一個以外,所有的好主意。如果在1970年1月1日的偏移量不同於輸入日期的偏移量,那麼這不會成立。另外,你可以使用'Z'而不是'+00:00',但兩者都是有效的。 –

-1

煤礦做這個

var datetime= new Date() 

然而,一個月爲1度低,所以你必須添加一個