function formatDate(date){
return [date.getFullYear(), date.getMonth() + 101, date.getDate() + 100].join("-").replace(/-1/g, "");
}
function parseDate(str) {
    return new Date(str.replace(/(\d{4})[-\/]?(\d{1,2})[-\/]?(\d{1,2})/, "$1/$2/$3"));
}function nextDay(currDate){
var day=formatDate(new Date(parseDate(currDate) + 24 * 60 * 60 * 1000));
return day;
}
alert(nextDay("20100507"));
有个日期字符串(如20100507),我想求它的下一天。因此我先将字符串转换为日期类型,然后再加上一天的秒数但上面 + 24 * 60 * 60 * 1000运行后却报NaN,改为减法,则可以得到正确的上一天,问题是我想得到下一天的日期???

解决方案 »

  1.   

    将parseDate(currDate) + 24 * 60 * 60 * 1000改为parseDate(currDate).getTime() + 24 * 60 * 60 * 1000即可
      

  2.   

    将parseDate(currDate) + 24 * 60 * 60 * 1000改为parseDate(currDate).getTime() + 24 * 60 * 60 * 1000即可
      

  3.   

    var day=formatDate(new Date(parseDate(currDate)*1 + 24 * 60 * 60 * 1000));
    这样就可以了。
    普通的+号,会当成字串相加。或者是显式转换数据类型,或者是利用运算符号来让它隐式自动转换成合适的类型。加*号,就让它隐式自动转换成数字类型,以便正确参加后面的数字运算了。