繁体   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