[英]Convert DateTime string to timestap in javascript
如果dd = "2012-08-20 01:16:00";
將此日期轉換為時間戳(如下面的代碼所示)
var t = new Date(dd).getTime();
http://jsfiddle.net/userdude/DHxwR/
結果t = NaN
為什么?
根據ECMA-262 (§15.9.1.15, 日期時間字符串格式 ,第169頁),要求接受的唯一日期字符串格式為:
[+YY]YYYY[-MM[-DD]][THH:mm[:ss[.sss]]]Z
其中Z
要么Z
(對於UTC)或偏移由任一一個的+
或-
接着HH:mm
。 不應依賴特定瀏覽器支持的任何其他格式,因為不能保證持續的支持。
因此,用T
替換空格並在將其傳遞給Date
構造函數之前附加Z
或固定時區偏移量。 例如,如果日期和時間在UTC + 8區域中:
var dd = "2012-08-20 01:16:00";
var t = new Date(dd.replace(' ', 'T') + '+08:00').getTime();
這將返回從1970年1月1日午夜UTC到指定日期的毫秒數,將其視為通用時間(如果附加Z
)或本地時間指定的固定時區偏移量。
請注意,這將采取不同的行動,因為日期不會簡單地視為用戶系統時區的本地時間,就像您的問題示例那樣。 但是,我不能想到這樣做會有用的情況,因為根據用戶的配置會得到不同的結果 - 但實際上,無論你身在何處,兩個日期之間的時差總是相同的。
嘗試在年,月和日值之間使用空格或逗號。
這很簡單:
+(new Date("2012-08-20 01:16:00"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.