[英]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.