簡體   English   中英

Html5 javascript gettime()來自 <input type=“date” /> ,奇怪的工作

[英]Html5 javascript gettime() from <input type=“date” />,oddly working

我將日期對象作為unix時間戳發布。我在javascript中使用getTime()。
例如

在我的.js文件中初始化時

firstDate = new Date("2019-08-04");

然后當我改變日期輸入值

和firstDate.getTime()這將返回時間戳而不添加TimezoneOffset。

但沒有firstDate = new Date(“2019-08-04”); assingnation,

當我更改日期輸入值時,它會添加TimezoneOffset。

所以為了解決這個問題,我使用了

var timestamp = firstDate.getTime() - 60000 * firstDate.getTimezoneOffset();

在將時間戳發布到服務器之前。

這是什么原因?

當您使用提供值“2019-08-04”的日期構造函數設置firstDate時,它會將firstDate中的日期設置為2019年8月4日以及到達當地時區的時間(即,如果您在印度,firstDate將是Sun Aug 04 2019 05:30:00而不是Sun Aug 04 2019 00:00:00)。 當您調用getTime()而不指定它時,將使用本地時區偏移量添加當前日期和時間。

我理解它是如何工作的。作為鏈接https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date說Iso 8601日期構造函數被表示為utc而不是local.So gettime()函數生成unix時間戳而不添加時區。即使我刪除了javascript中分配的輸入日期值,同時初始化javascript文件並重新選擇新的日期值,它再次使用utc.So我不需要減去時區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM