当我尝试以下
时new Date().valueOf()
结果是140082670954.对于
new Date('05/23/2014').valueOf()
结果是1400783400000。
毫秒输出存在差异。第二个是在00:00:00,但第一个是在今天的日期中午12点。
我需要像第二个那样得到毫秒。我该如何动态地做到这一点?
答案 0 :(得分:1)
当你这样做时:
new Date()
创建一个新的Date对象,其中包含当前时刻的时间值。当你这样做时:
new Date('05/23/2014')
在指定日期的00:00:00.000创建新的Date对象。如果你想使用构造函数的等价物,那么创建日期并适当地设置时间:
var d = new Date();
d.setHours(0,0,0,0);
请不要将字符串传递给Date构造函数。它调用Date.parse,这在很大程度上取决于实现,并且跨浏览器不一致(甚至使用string format specified in ES5)。使用所需的值调用构造函数:
new Date(2014, 4, 23);
注意月份为零索引,因此May为4
。
答案 1 :(得分:0)
我认为你想要从某一天的午夜开始的毫秒?由于JavaScript非常有限的日期时间API,我担心它不会太简单。您可以从日期对象中提取年,月和日,并从以下项创建新对象:
var now = new Date();
var day = now.getDate();
var month = now.getMonth();
var year = now.getFullYear();
var today = new Date(year, month, day);
var millis = today.valueOf();
顺便说一句:你提到第一个"是在晚上12点" - 这取决于您执行语句的时间。 new Date()
为您提供包含当前当地时间的日期。所以你似乎在大约中午12点尝试了它: - )