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