Php javascript函数new Date()不工作
我的问题如下: 我想在我的网站上显示尼泊尔标准时间,所以我设置了我的手机的默认时区 使用htaccess文件中的php_value date.timezone“Asia/katmandu”命令将网站链接到“Asia/katmandu” 当我使用strftime()或date()等php函数显示时间时,它会显示尼泊尔标准时间, 但当我使用javascript函数newdate(Php javascript函数new Date()不工作,php,javascript,Php,Javascript,我的问题如下: 我想在我的网站上显示尼泊尔标准时间,所以我设置了我的手机的默认时区 使用htaccess文件中的php_value date.timezone“Asia/katmandu”命令将网站链接到“Asia/katmandu” 当我使用strftime()或date()等php函数显示时间时,它会显示尼泊尔标准时间, 但当我使用javascript函数newdate()时,它会显示 我使用个人电脑查看网站的时间。 如何使用javascript日期函数显示正确的时间?有人能帮我吗?使用 n
)时,它会显示
我使用个人电脑查看网站的时间。
如何使用javascript日期函数显示正确的时间?有人能帮我吗?使用
new Date(Date.NPT(year, month, day, hour, minute, second))
从服务器通过ajax调用时间。这具有更好的代码维护的优势。如果再次更改时间(例如,如果要将代码用于其他位置),则只需更改.haccess中的时间 您的问题是因为javascript(实际上是ECMAScript)日期对象基于UTC。当您这样做时:
new Date(<?php echo time()*1000; ?>)
新日期()
将UTC毫秒时间值传递给日期构造函数,然后该构造函数将创建一个日期对象。当您使用常用的日期方法格式化字符串,或使用Date.prototpye.toString或Date.prototype.ToLocalString时,您将获得一个基于客户端区域设置的字符串。请注意,所有这些字符串都依赖于实现,并且在区域设置版本中差异很大
如果需要服务器的时区,请使用服务器进行设置。或者,您可以发送一个以分钟为单位的时区偏移量,应用于当地时间,以返回尼泊尔标准时间(UTC+5:45)。请注意,在ECMAScript中,时区偏移量是以分钟为单位添加到本地时间以获取UTC,而更常见的是以分钟为单位定义要添加到UTC以获取本地时间的偏移量
因此,要获得NST:
function toNST(timeValue) {
function z(n) {return (n<10? '0' : '') + n}
var d = new Date();
var nstOffset = 5 * 60 + 45;
d.setMinutes(d.getMinutes() + d.getTimezoneOffset() + nstOffset);
return z(d.getHours()) + ':' + z(d.getMinutes()) + ':' + z(d.getSeconds());
}
alert(toNST(+(new Date()))); // about 11:07:17 at the moment
函数toNST(时间值){
函数z(n){return(nJavascript)将始终显示系统日期。如果需要服务器时间,则需要从服务器获取日期或时间。@HarryBomrah javascript日期使用UTC时间值,默认情况下,该值基于时区偏移和系统当前时间的系统设置组合。