我在JavaScript中有一个Date对象,我需要找到它发生的确切天数(如整数)(在当时和当前日期之间)。我知道如果在同一个月内如何做到这一点,但我需要这个在过去的所有日期都能正常工作。它应该显示0,如果它是与今天相同的物理日(午夜之后),如果它是在最近的午夜之前(上一个实际日),则应该显示1,依此类推。午夜旅行新的一天,而不是24小时。我自己尝试写这个,但随着一个月内的天数变化,它很快就成了一个问题。 Date对象和当前时间应该已经在您的本地时区,因此时区在这里无关紧要。
答案 0 :(得分:1)
计算开始时间和结束时间之间的差异。
function calc(begin, end) {
//suppose begin, end are two Date Object to calc
var diffmsec = end.getTime() - begin.getTime();
var diffday = Math.floor(diffmsec / (3600*24*1000));
var remainder = diffmsec % (3600*24*1000);
var beginDayTime = begin.getHours()*3600*1000 + begin.getMinutes()*60*1000
+ begin.getSeconds()*1000 + begin.getMilliseconds();
//if [beginDayTime] + [remainder] > 1 day, [diffday]++
if (beginDayTime + remainder > 24*3600*1000){
diffday++;
}
return diffday;
}
答案 1 :(得分:0)
function parseDate(dateString) {
var mmddyy = dateString.split('/')
return new Date(mmddyy [2], mmddyy [0]-1, mmddyy [1]);}
function daydiff() {
return (parseDate($('#second').val())-parseDate($('#first').val()))/(1000*60*60*24)}
alert(Math.floor(daydiff()));
答案 2 :(得分:0)
/* 2014-01-15, 11:00 */
var date = new Date(2014, 0, 15, 11, 0);
var today = new Date();
Math.abs(Math.floor((date - today) / (1000*60*60*24)))