这串js javascript代码要如何修改才能让他在所有时区的电脑上都能统一显示北京时间呢?我要用在ecshop上
我会给你加50分的,如果能帮我处理这个问题。帮我看看这段js代码要如何修改?我需要它显示的是中国的北京时间就算在国外的不同时区的电脑那也一样是显示北京时间而不是客户电脑上...
我会给你加50分的,如果能帮我处理这个问题。帮我看看这段js代码要如何修改?我需要它显示的是中国的北京时间就算在国外的不同时区的电脑那也一样是显示北京时间而不是客户电脑上的时间,(表现为你更改本地电脑时区的时候它显示的仍然是北京时间)而现在的这代码不行。现在的这个代码如果用老外的电脑看网站,他显示的就不是中国的北京时间,需要修改,不过我不是太清楚如何修改。请帮我出出主意。先谢。
<script language="javascript">
if ( typeof XMLHttpRequest == 'undefined' )
XMLHttpRequest = function() {
return new ActiveXObject(
navigator.userAgent.indexOf('MSIE 5') >= 0 ?
'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP' );
};
var xmlhttp = new XMLHttpRequest;
xmlhttp.open("HEAD", ".", false);
xmlhttp.send(null);
var curDate = new Date;
var offsetTime = curDate - Date.parse(xmlhttp.getResponseHeader("Date"));
curDate.setTime(new Date - offsetTime);
if (curDate.getHours().toString().length<2 ){var phours = "0"+curDate.getHours().toString();}else{phours = curDate.getHours().toString();}
if (curDate.getMinutes().toString().length<2){var pminutes = "0"+curDate.getMinutes().toString();}else{pminutes = curDate.getMinutes()}
var ptime = phours + pminutes;
window.setInterval(function(){
document.getElementById("hours").innerHTML = phours;
document.getElementById("minutes").innerHTML = pminutes;
if (document.getElementById("maohao").innerHTML == " "){
document.getElementById("maohao").innerHTML = ":";
}else{
document.getElementById("maohao").innerHTML =" ";
}
},1000);
</script> 展开
<script language="javascript">
if ( typeof XMLHttpRequest == 'undefined' )
XMLHttpRequest = function() {
return new ActiveXObject(
navigator.userAgent.indexOf('MSIE 5') >= 0 ?
'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP' );
};
var xmlhttp = new XMLHttpRequest;
xmlhttp.open("HEAD", ".", false);
xmlhttp.send(null);
var curDate = new Date;
var offsetTime = curDate - Date.parse(xmlhttp.getResponseHeader("Date"));
curDate.setTime(new Date - offsetTime);
if (curDate.getHours().toString().length<2 ){var phours = "0"+curDate.getHours().toString();}else{phours = curDate.getHours().toString();}
if (curDate.getMinutes().toString().length<2){var pminutes = "0"+curDate.getMinutes().toString();}else{pminutes = curDate.getMinutes()}
var ptime = phours + pminutes;
window.setInterval(function(){
document.getElementById("hours").innerHTML = phours;
document.getElementById("minutes").innerHTML = pminutes;
if (document.getElementById("maohao").innerHTML == " "){
document.getElementById("maohao").innerHTML = ":";
}else{
document.getElementById("maohao").innerHTML =" ";
}
},1000);
</script> 展开
3个回答
展开全部
使用世界时来表达就行了,北京时间是第8时区,将世界时加上8小时就是北京时间。
var nowTime = new Date(new Date().getTime()+8*60*60*1000);
北京时间显示为:
nowTime.toUTCString();
获取年月日全都使用世界时方法:
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)
var nowTime = new Date(new Date().getTime()+8*60*60*1000);
北京时间显示为:
nowTime.toUTCString();
获取年月日全都使用世界时方法:
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)
更多追问追答
追问
具体是如何改我附上的代码呢?英国人,美国人,印度人在他们本地电脑上都能看到北京时间吗?
追答
世界时在任何电脑上显示都是一致的,现在其实是用比当前时刻超前8小时的世界时来模拟北京时间,
当然,js计算时间只能根据用户电脑的时间设置来计算,如果你相信用户的电脑设置是正确的,仅仅是时区不一样,就完全可以用上面的方法计算时间,
否则使用服务器时间。
实际上,服务器响应头返回的时间应该就是世界时,把他加上8小时就行了。
var nowTime = new Date(Date.parse(xmlhttp.getResponseHeader("Date"))+8*60*60*1000);
用这个时间结合世界时的时分秒获取方法得到的就是对应北京时的时分秒。
展开全部
不行的。JS只能显示电脑本地时间。就是说,只能显示打开你网站的人他自己电脑的时间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
除非你用AJAX来处理,显示服务器的时间,否则JS房无法得到的!
追问
我有个代码可以实现,可是又不能把它贴在追问里,超长了。郁闷。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询