Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php javascript函数new Date()不工作_Php_Javascript - Fatal编程技术网

Php javascript函数new Date()不工作

Php javascript函数new Date()不工作,php,javascript,Php,Javascript,我的问题如下: 我想在我的网站上显示尼泊尔标准时间,所以我设置了我的手机的默认时区 使用htaccess文件中的php_value date.timezone“Asia/katmandu”命令将网站链接到“Asia/katmandu” 当我使用strftime()或date()等php函数显示时间时,它会显示尼泊尔标准时间, 但当我使用javascript函数newdate()时,它会显示 我使用个人电脑查看网站的时间。 如何使用javascript日期函数显示正确的时间?有人能帮我吗?使用 n

我的问题如下: 我想在我的网站上显示尼泊尔标准时间,所以我设置了我的手机的默认时区 使用htaccess文件中的php_value date.timezone“Asia/katmandu”命令将网站链接到“Asia/katmandu”

当我使用strftime()或date()等php函数显示时间时,它会显示尼泊尔标准时间, 但当我使用javascript函数newdate(
)时,它会显示 我使用个人电脑查看网站的时间。 如何使用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时间值,默认情况下,该值基于时区偏移和系统当前时间的系统设置组合。