NaN:Firefox和IE中的NaN,CHROME工作正常
NaN:NaN in firefox and IE ,CHROME works fine
我的脚本在Chrome中是可以的,但在FireFox和IE中结果是:NaN:NaN。这是我的剧本:有人知道出了什么问题吗?
$db[时间] 的输出为 : 2013-10-07 14:28:35 (时间戳数据库)
<script>
var end = new Date('<?=$db[time]?>');
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;
function showRemaining() {
var now = new Date();
var distance = end - now;
if (distance < 0) {
clearInterval(timer);
document.getElementById('countdown').innerHTML = 'ITS NOW TIME!</font><BR><BR>';
return;
}
var days = Math.floor(distance / _day);
var hours = Math.floor((distance % _day) / _hour);
var minutes = Math.floor((distance % _hour) / _minute);
var seconds = Math.floor((distance % _minute) / _second);
document.getElementById('countdown').innerHTML = '<font color="orange">' + minutes + ':';
document.getElementById('countdown').innerHTML += '<font color="orange">' + seconds + ' minutes</font>';
}
timer = setInterval(showRemaining, 1000);
</script>
这是因为
$db[time]
的值。
您在评论中说日期/时间的格式是2013-10-07 14:28:35
这是MySQL的默认DATETIME输出,当需要2013-10-07T14:28:35
时。
为了方便起见,Chrome支持2013-10-07 14:28:35
格式,但它不在Javascript规范中,因此并非所有其他浏览器都支持。
试试这个:
<? echo str_replace(' ', 'T', $db['time']); ?>
JavaScript 时间格式与 PHP 不同,因此 Firefox 将显示 NaN:NaN:NaN。 你应该隐蔽时间如下:
PHP 日期格式
$yourDate = date("M d, Y H:i:s", strtotime($db['time'])));
获得这样的时间
date = new date("<?=$yourDate?>").getTime();
您可以自己解析日期字符串,而不是依赖具有现代方法的现代浏览器,如下所示的内容应该是跨浏览器友好的。倒计时以毫秒为单位,您可以根据需要格式化。
.HTML
<div id="countdown"></div>
爪哇语
function isGregorianLeapYear(year) {
return year % 400 === 0 || year % 100 !== 0 && year % 4 === 0;
}
function daysInGregorianMonth(year, month) {
var days;
if (month == 2) {
days = 28;
if (isGregorianLeapYear(year)) {
days += 1;
}
} else {
days = 31 - ((month - 1) % 7 % 2);
}
return days;
}
function timeStampToDate(timeStamp) {
var dateObject,
dateTime,
date,
time,
value;
if (typeof timeStamp === "string") {
dateTime = timeStamp.split(" ");
if (dateTime.length === 2) {
date = dateTime[0].split("-");
if (date.length === 3) {
value = +date[0];
if (date[0].length === 4 && value >= -9999 && value <= 9999) {
value = +date[1];
if (date[1].length === 2 && value >= 1 && value <= 12) {
date[1] = value - 1;
value = +date[2];
if (date[2].length === 2 && value >= 1 && value <= daysInGregorianMonth(+date[0], date[1])) {
time = dateTime[1].split(":");
if (time.length === 3) {
value = +time[0];
if (time[0].length === 2 && value >= 0 && value <= 23) {
value = +time[1];
if (time[1].length === 2 && value >= 0 && value <= 59) {
value = +time[2];
if (time[2].length === 2 && value >= 0 && value <= 59) {
dateObject = new Date(Date.UTC.apply(Date, date.concat(time)));
}
}
}
}
}
}
}
}
}
}
if (typeof dateObject === "undefined") {
dateObject = new Date(NaN);
}
return dateObject;
}
function emptyNode(node) {
while (node.firstChild) {
node.removeChild(node.firstChild);
}
}
var countdown = document.getElementById("countdown"),
end = timeStampToDate("2013-10-07 16:57:00"),
intervalId;
end = end.getTime() + end.getTimezoneOffset() * 60000;
function showRemaining() {
var now = new Date().getTime();
if (isNaN(end) || isNaN(now)) {
clearInterval(intervalId);
emptyNode(countdown);
countdown.appendChild(document.createTextNode("Error"));
} else if (now < end) {
emptyNode(countdown);
countdown.appendChild(document.createTextNode(end - now));
} else {
clearInterval(intervalId);
emptyNode(countdown);
countdown.appendChild(document.createTextNode("ITS NOW TIME!"));
}
}
intervalId = setInterval(showRemaining, 1000);
js小提琴
相关文章:
- Chrome WebKitGetUserMedia
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- 在chrome.tabs.onCreated之后加载HTML页面
- chrome扩展中的navigator.geolocation.getCurrentPosition
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- chrome扩展更改主机/域警告
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 如何在chrome扩展中重定向到html页面
- Chrome扩展没有't在重新加载之前考虑期权价值
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- 日期差异在Firefox和IE中有效,但在Chrome中返回NaN
- NaN:Firefox和IE中的NaN,CHROME工作正常
- 为什么getDate()在Chrome中返回Nan
- Javascript在Firefox中工作正常,但在Chrome中提供NaN
- Chrome调试器:每次计算Nan或Infinity时,是否可以停止调试器中的脚本
- parseInt在IE中返回NaN,但在Chrome中工作良好
- Jquery倒计时显示NaN在Safari,在Chrome / Firefox工作良好
- Jquery的日期.解析返回NaN在Chrome浏览器
- Javascript在IE中显示错误形式的NaN -适用于Firefox和chrome