我想知道从一天开始的时间给出几天毫秒。
所以说我给了这个:1340323100024就像是6/21/2012的中午。现在我想要从一天开始的毫秒,这将是1340262000000(至少我认为这是它应该是什么。)
如何从1340323100024获得1340262000000?
我试过
Math.floor(1340323100024/86400000) * 86400000
但这给了我1340236800000,如果我用它创建一个日期对象,就说它是第20个。
我知道我可以从1340323100024创建一个日期对象,然后获取月,年和日,创建一个新对象,这将给我1340262000000,但我发现它很荒谬我无法弄清楚这么简单的东西。
任何帮助将不胜感激。
不过,如果它有任何不同,我在javascript中这样做。答案 0 :(得分:6)
我同意Thilo(本地化为时区),但我可能会像这样解决它:
// Original: Thu Jun 21 2012 19:58:20 GMT-0400 (Eastern Daylight Time)
var ms = 1340323100024;
var msPerDay = 86400 * 1000;
var beginning = ms - (ms % msPerDay);
// Result: Wed Jun 20 2012 20:00:00 GMT-0400 (Eastern Daylight Time)
或者,如果您愿意:
Number.prototype.StartOfDayMilliseconds = function(){
return this - (this % (86400 * 1000));
}
var ms = 1340323100024;
alert(ms.StartOfDayMilliseconds());
修改强>
如果您特别关注时区,可以使用:
// Original: Thu Jun 21 2012 19:58:20 GMT-0400 (Eastern Daylight Time)
var ms = 1340323100024;
var msPerDay = 86400 * 1000;
var beginning = ms - (ms % msPerDay);
beginning += ((new Date).getTimezoneOffset() * 60 * 1000);
// Result: Thu Jun 21 2012 00:00:00 GMT-0400 (Eastern Daylight Time)
请注意,现在已删除偏移量,因此前一天晚上8点将转到时间戳上实际日期的午夜。您也可以(取决于实施)在您开始模拟之前或之后进行添加 - 您的偏好。
答案 1 :(得分:1)
var d = new Date();
var date = d.toISOString().split("T")[0];
var date_ms = new Date(date).getTime();
或一行答案
console.log(new Date(new Date().toISOString().split("T")[0]).getTime());
答案 2 :(得分:-3)
实际上,要获得GMT + 5当天开始以来的毫秒数,应该WHERE ((Year([New Referrals].[Date of Referral])
。