gpt4 book ai didi

JavaScript 倒计时在 Safari 或 IE 中不起作用

转载 作者:行者123 更新时间:2023-12-02 18:26:55 26 4
gpt4 key购买 nike

此功能在 Chrome 中有效,但在 IE 或 Safari 中无效,我做错了什么?

function countdown(){
var dDay = new Date().getUTCDate() + 1;
var dMonth = new Date().getUTCMonth() + 1;
var dYear = new Date().getUTCFullYear();
var BigDay = new Date(dYear+ ", " +dMonth+ ", " +dDay+ ",00:00:00");
var msPerDay = 24 * 60 * 60 * 1000;
var today = new Date();
var timeLeft = (BigDay.getTime() - today.getTime());

var e_daysLeft = timeLeft / msPerDay;
var daysLeft = Math.floor(e_daysLeft);

var e_hrsLeft = (e_daysLeft - daysLeft)*24;
var hrsLeft = Math.floor(e_hrsLeft);

var e_minsLeft = (e_hrsLeft - hrsLeft)*60;
var minsLeft = Math.floor(e_minsLeft);

var e_secsLeft = (e_minsLeft - minsLeft)*60;
var secsLeft = Math.floor(e_secsLeft);
if(daysLeft.toString().length === 1){
daysLeft = "0"+daysLeft;
}
if(hrsLeft.toString().length === 1){
hrsLeft = "0"+hrsLeft;
}
if(minsLeft.toString().length === 1){
minsLeft = "0"+minsLeft;
}
if(secsLeft.toString().length === 1){
secsLeft = "0"+secsLeft;
}

timeString = daysLeft + ":" + hrsLeft + ":" + minsLeft + ":" + secsLeft;
return timeString;
}

我用它来打印计数器

window.setInterval(function(){
$('#countdown').html("Time left: "+ countdown());
}, 1000);

这是我在 Chrome 中得到的结果:

Time left: 00:01:55:15

这是我在 IE 和 Safari 中得到的结果:

Time left: NaN:NaN:NaN:NaN

最佳答案

我认为是因为您正在构建无效的日期对象:

var BigDay = new Date(dYear+ ", " +dMonth+ ", " +dDay+ ",00:00:00");

文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

一个月表示:

Integer value representing the month, beginning with 0 for January to 11 for December.

您只想在今天添加一天,因此请尝试更改代码:

var BigDay = new Date();
BigDay.setDate(BigDay.getDate() + 1);
BigDay.setHours(0, 0, 0, 0);

演示:http://jsfiddle.net/IrvinDominin/HgUhq/

关于JavaScript 倒计时在 Safari 或 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com