我想从给定天毫秒一天的开始找出的时间。
所以说,我给这样的:1340323100024这就像正午的2012/6/21。 现在我想从一天的开始,这将是13402.62亿毫秒(至少我认为这就是它应该是。)
我如何得到1340323100024 13402.62亿?
我想这样做
Math.floor(1340323100024/86400000) * 86400000
但是,让我1340236800000,而如果我创建一个日期对象了吧,它的20说。
我知道我可以从1340323100024创建一个日期对象,然后拿到一个月,一年,日期,创建一个新的对象,这将使我的13402.62亿,但我觉得可笑我想不通这么简单的东西。
任何帮助,将不胜感激。
顺便说一句,我在JavaScript,如果这有什么差别这样做。
我同意蒂洛(本地化时区),但是我可能会解决它像这样:
// 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点前一天变成了对时间戳的实际日期的午夜。 您还可以或许(取决于实现)做之前或模当天开始后加入 - 您的喜好。
其实,这应该是(currTimeMilli - 18000000) % 864000000
获得的毫秒数的那天起就为GMT + 5的开始。