日期&时间脚本-ie vs ff
date & time script - ie vs ff
我下面的脚本在ie中工作,但在firefox中我得到了:
Mon, July 16th 2012 //this is ok
NaN:NaN:NaN (UTC +2) //but the time???
var weekdaystxt = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
function showLocalTime(container, servermode, offsetMinutes, displayversion) {
if (!document.getElementById || !document.getElementById(container)) return
this.container = document.getElementById(container)
this.displayversion = displayversion
var servertimestring = (servermode == "server-php") ? '<? print date("D, F jS Y H:i:s", time())?>' : (servermode == "server-ssi") ? '<!--#config timefmt="%B %d, %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->' : '<%= Now() %>'
this.localtime = this.serverdate = new Date(servertimestring)
this.localtime.setTime(this.serverdate.getTime() + offsetMinutes * 60 * 1000) //add user offset to server time
this.updateTime()
this.updateContainer()
}
showLocalTime.prototype.updateTime = function() {
var thisobj = this
this.localtime.setSeconds(this.localtime.getSeconds() + 1)
setTimeout(function() {
thisobj.updateTime()
}, 1000) //update time every second
}
showLocalTime.prototype.updateContainer = function() {
var thisobj = this
if (this.displayversion == "long") this.container.innerHTML = '<? print date("D, F jS Y")?>'
else {
var hour = this.localtime.getHours()
var minutes = this.localtime.getMinutes()
var seconds = this.localtime.getSeconds()
var ampm = (hour >= 12) ? "PM" : "AM"
var dayofweek = weekdaystxt[this.localtime.getDay()]
this.container.innerHTML = formatField(hour, 1) + ":" + formatField(minutes) + ":" + formatField(seconds) + " (UTC +2)"
}
setTimeout(function() {
thisobj.updateContainer()
}, 1000) //update container every second
}
function formatField(num, isHour) {
if (typeof isHour != "undefined") { //if this is the hour field
var hour = (num > 24) ? num - 24 : num
return (hour == 0) ? 24 : hour
}
return (num <= 9) ? "0" + num : num //if this is minute or sec field
}
首先,这里是您发布的代码的jsFiddle,这样我们就可以看到发生了什么-
http://jsfiddle.net/HjDds/
请注意,这是一个工作版本。问题在于IE和Chrome解析日期的方式不同。无论<%现在()%>又回来了,Chrome不喜欢它,并且在创建新的Date()对象时无法进行解析。
您需要确保您的服务器正在发送一个日期字符串,该字符串的格式可以跨浏览器使用。
至于我的修复(尽管这不是真正的修复,因为你似乎想要服务器时间)是替换<%=现在()%>在带有新Date()的servertimestring字符串中。我还加了分号,因为我周围还有一堆临时演员。
无效格式数据:2012年7月16日星期一17:02:32
Php使用$_SERVER['REQUEST_TIME']并乘以1000。
这将:
var servertimestring = (servermode == "server-php") ? '<?php echo $_SERVER['REQUEST_TIME']*1000;?>' : (servermode == "server-ssi") ? '<!--#config timefmt="%B %d, %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->' : '<%= Now() %>';
:)
相关文章:
- setInteval vs setTimeout
- 为什么这在IE中的工作方式与在Firefox中不同
- $(this).prop('property') vs. this.property
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- Js.erb VS按钮标记-不'不起作用.为什么?
- 设置倒计时计时器,IE出现问题
- reactjs this.refs vs document.getElementById
- 仅在IE中,javascript中的时区名称不正确
- 在IE中加载Firebug Lite时出现问题
- 为什么我得到错误IE修剪方法是't支持
- Javascript canvas.getImageData IE vs Chrome
- 这个关键字在Safaari vs.Chrome,Firefox,IE中具有select box onchange属性
- 日期&时间脚本-ie vs ff
- JavaScript Chrome vs IE
- Javascript动画:IE vs其他浏览器
- IE日期格式Vs Chrome (toLocaleDateString)
- position:固定IE Vs Firefox的差异