JavaScript Date Object 的月份索引以 0 开头

我的目标是以有效的方式将时间戳从MySQL转换为JavaScript Date对象。以下是我当前的代码片段,它将MySQL时间戳转换为PHP中的格式化日期:

<?php
// formats timestamp into following format: 2009, 7, 30
$date =  date("Y, n, j", strtotime($row["date"]));
?>

然后,我将此值用于使用Google的图表API的图表,该API需要JavaScript Date对象:$date

data.setValue(<?=$count;?>, 0, new Date(<?=$date;?>));

问题是 JavaScript Date 对象以 0 开头的月份索引,因此输出始终提前 1 个月。处理这个问题的最有效方法是什么?

提前致谢!


答案 1

您可以向 Date 构造函数提供 mm/dd/yyyy 或 yy/mm/dd 格式的日期,它将对其进行转换:

>>> new Date('7/30/2009');
Thu Jul 30 2009 00:00:00 GMT-0700 (Pacific Daylight Time)
>>> new Date('2009/7/30');
Thu Jul 30 2009 00:00:00 GMT-0700 (Pacific Daylight Time)

答案 2

恐怕你必须手动从月份数字中减去多余的钱。JS Date 对象是一团糟。1