Kho*_*hon 4 javascript time date milliseconds
我想弄清楚从一天开始的时间给出几天毫秒.
所以说我给了这个:1340323100024,就像6/21/2012的中午.现在我想要从一天开始的毫秒,这将是1340262000000(至少我认为这是它应该是什么.)
我如何从1340323100024获得1340262000000?
我试过了
Math.floor(1340323100024/86400000) * 86400000
Run Code Online (Sandbox Code Playgroud)
但这给了我1340236800000,如果我用它创建一个日期对象,它说它是第20个.
我知道我可以从1340323100024创建一个日期对象,然后得到月,年和日,创建一个新的对象,这将给我1340262000000,但我发现它很荒谬我无法弄清楚这么简单的事情.
任何帮助,将不胜感激.
顺便说一句,我在javascript中这样做,如果它有任何区别.
我同意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)
Run Code Online (Sandbox Code Playgroud)
或者,如果您愿意:
Number.prototype.StartOfDayMilliseconds = function(){
return this - (this % (86400 * 1000));
}
var ms = 1340323100024;
alert(ms.StartOfDayMilliseconds());
Run Code Online (Sandbox Code Playgroud)
编辑
如果你特别关注时区,你可以使用:
// 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)
Run Code Online (Sandbox Code Playgroud)
请注意,现在已删除偏移量,因此前一天晚上8点将转到时间戳上实际日期的午夜.您也可以(取决于实施)在您开始模拟之前或之后进行添加 - 您的偏好.