日期.UTC创建错误的日期

Date.UTC creating wrong dates

本文关键字:日期 错误 创建 UTC      更新时间:2023-09-26

我已经为动态创建的图形编写了一些代码,它使用Date.UTC()来创建格式化的日期。

它在几个月内工作完全正常,但是我在跨越月份时遇到麻烦,即2月到3月创建了2月29日,30日和31日,现在我发现了一个错误,使5月31日变为6月1日.......

我试图找到一个答案,但还没有运气。有没有一个简单的解决办法,我忽略了还是有一个解决办法?

s.Set('chart.xmin', Date.UTC(<?php echo $startyear.",".$startmonth.",".$startday.",".$starthour.",".$startminute; ?>));            
    s.Set('chart.xmax', Date.UTC(<?php echo $finishyear.",".$finishmonth.",".$finishday.",".$finishhour.",".$finishminute; ?>));

欢呼詹姆斯

JavaScript的月份是0-11,而PHP是1-12。因此,当您在PHP页面中生成JavaScript代码时,您需要从月份中减去1。

但是直接传递时间戳不是更容易吗?例如:

new Date(<?php echo date_timestamp_get($yourdate) * 1000 ?>)

* 1000是存在的,因为PHP的时间戳是以秒为单位,JavaScript的时间戳是以毫秒为单位。但是它们都使用相同的参考日期——1/1/1970 UTC纪元。

参考PHP date_timestamp_get文档