与新日期相比,javascript getTime()为旧日期返回更大的值

时间:2015-10-27 06:48:46

标签: javascript date

javascript getTime()返回1970年1月1日午夜的毫秒数和日期对象中的时间值。但是,

  new Date('Wed Sep 16 2105 05:30:00 GMT+0530').getTime()
  // returns 4282502400000
  new Date('Tue Oct 26 2015 05:30:00 GMT+0530').getTime()
  // returns 1445817600000

不应该由后者(2015年10月26日05:30:00 GMT + 0530)重新调整的值更大。 我想查找给定日期(时间戳通知)和今天之间的列表日期。我编写了下面的代码,假设getTime()为旧日期返回的值总是小于新日期。

    var timestamp = new Date('9/15/2105, 12:00:00 AM').getTime();
    var startDate = new Date(timestamp);
    // Date.UTC() to avoid timezone and daylight saving 
    var date = new Date(Date.UTC(startDate.getFullYear(),
                       startDate.getMonth(),
                       startDate.getDate()
                        ));
    var currentDay = new Date();
    var currentDayTimestamp = new Date(Date.UTC(currentDay.getFullYear(),
                                        currentDay.getMonth(),
                                        currentDay.getDate()
                                        )).getTime();
    // day in millisec, 24*60*60*1000 = 86400000
    date = new Date(date.getTime() + 86400000);
    var dates = [];
    console.info(date + ' : ' + date.getTime());
    console.info(new Date(currentDayTimestamp) + ' : ' + currentDayTimestamp);
    while(date.getTime() <= currentDayTimestamp) {
        var dateObj = {
            date: date.getUTCDate(),
            month: date.getUTCMonth() + 1,
            year: date.getUTCFullYear()
        }
        dates.push(dateObj);
        date = new Date(date.getTime() + 86400000);
    }
    console.info(JSON.stringify(dates));

   OUTPUT: 
   Wed Sep 16 2105 05:30:00 GMT+0530 (IST) : 4282502400000
   Tue Oct 27 2015 05:30:00 GMT+0530 (IST) : 1445904000000
   []

1 个答案:

答案 0 :(得分:3)

问题是你日期的拼写错误。一个是2105年,比2015年大得多。