[英]JavaScript Date() returns the wrong time
我的簡單測試:
var ds = "2018/2/28 15:59"; console.log(ds); var da = Date(ds); console.log(da); ds = "2018-2-28 15:59"; console.log(ds); var da = Date(ds); console.log(da);
結果是
2018/2/28 15:59
Thu Feb 01 2018 17:26:57 GMT+0800 (+08)
2018-2-28 15:59
Thu Feb 01 2018 17:26:57 GMT+0800 (+08)
即使時間“2018/2/28 15:59”處於不同的時區,但由於分鍾和秒數不同,因此仍然非常令人費解:59:00與26:57。 時區差異是30分鍾的倍數。
你忘了在Date()
之前添加new
。
這意味着您只是調用一個名為Date()
的函數(默認情況下)返回當前日期和時間。
var ds = "2018/2/28 15:59"; console.log(ds); var da = new Date(ds); console.log(da); ds = "2018-2-28 15:59"; console.log(ds); var da = new Date(ds); console.log(da);
除了AuxTacos之外,還有正確的init方法。 你的約會對象
var da = new Date(2018, (2-1), 28, 15, 59); // x-1 because 0=Jan,1=Feb...
console.log(date);
除了zeropublix的答案 (你忘了new
),你的日期字符串是無效的。 編碼“2018年2月28日開始的午夜過去15小時59分鍾”的正確方法是"2018-02-28T15:59Z"
。 您的系統(和我的)可能會將"2018/2/28 15:59"
識別為有效的日期字符串,但這取決於實現並且容易出現故障。 規范中唯一認可的格式是ISO 8601的簡化 。
我試試這個。
var ds = "2018/2/28 15:59";
var da = new Date(ds);
它給了我日期2018-02-28T15:59:00.000Z。 我得到了正確的時間和日期。
var da = Date(ds);
此處即使傳遞參數,Date也會給出當前時間。
嘗試這個。
var ds = "2018/2/28 15:59"; var da = new Date(ds);
給出2018-02-28T10:29:00.000Z
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.