Javascript 添加分钟到日期在 IE 和 Safari 中不起作用

Javascript Add minutes to date not working in IE and Safari

我想在日期中添加分钟并显示 it.I 我正在使用以下代码

    function dt(){
 var d = new Date();
 d.setMinutes(d.getMinutes()+15*60);
            var theDate = d.getFullYear() + '-' + ( d.getMonth() + 1 ) + '-' + d.getDate()+' '+d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
            //var d1 = new Date( Date.parse( theDate ) + s1*60*1000 );      
            var d1=new Date(theDate);
            var hours = d1.getHours();
            var minutes = d1.getMinutes();
            var ampm = hours >= 12 ? 'PM' : 'AM';
            hours = hours % 12;
            hours = hours ? hours : 12; // the hour '0' should be '12'
            minutes = minutes < 10 ? '0'+minutes : minutes;
            var strTime = hours + ':' + minutes + ' ';
            var t=( d1.getMonth() + 1 )+ '/' + d1.getDate()  + '/' + d1.getFullYear()  +'  '+strTime;  alert(t+ampm);
        }
        dt();

此代码在 IE 和 safari 中的 Chrome.But 中运行良好,它正在返回 NAN:NAN:NAN 12:NAN AM。

任何人都请帮助。

此致
雷卡

尝试替换:

var d1 = new Date(theDate);

与:

var d1 = new Date(d.getFullYear(), d.getMonth() + 1, d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds());

Date contructor 与日期字符串一起使用有一些限制

行:

d.setMinutes(d.getMinutes()+15*60);

将使日期增加 15 小时。为什么不呢:

d.setHours(d.getHours()+15);

然后你通过创建一个字符串然后解析它来复制一个日期:

var theDate = d.getFullYear() + '-' + ... + d.getSeconds();
var d1 = new Date(theDate);

不要那样做。曾经。解析日期字符串是不可靠的(正如您所发现的)并且不推荐。要复制日期,请使用:

var d1 = new Date(+d);