Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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
为什么在javascript中,日期对象只在服务器端延迟一天,而在本地主机上不延迟一天?_Javascript_Node.js_Date_Datetime_Hosting - Fatal编程技术网

为什么在javascript中,日期对象只在服务器端延迟一天,而在本地主机上不延迟一天?

为什么在javascript中,日期对象只在服务器端延迟一天,而在本地主机上不延迟一天?,javascript,node.js,date,datetime,hosting,Javascript,Node.js,Date,Datetime,Hosting,以下代码在日期上附加00小时、mts和sec let setStartSTime = new Date(my_date); setStartSTime = setStartSTime.getFullYear() + "-" + (setStartSTime.getMonth()+1) + "-" + setStartSTime.getDate()+" " + 00 + ":"+ 00 + ":"+ 00;

以下代码在日期上附加00小时、mts和sec

let setStartSTime = new Date(my_date);
setStartSTime = setStartSTime.getFullYear() + "-"
              + (setStartSTime.getMonth()+1) + "-"
              + setStartSTime.getDate()+" "
              + 00 + ":"+ 00 + ":"+ 00;
    console.log(setStartSTime + 'setStartSTime');
let endStartSTime = new Date(my_date);
    endStartSTime = endStartSTime.getFullYear() + "-"
                  + (endStartSTime.getMonth()+1) + "-"
                  + endStartSTime.getDate()+" "
                  + 23 + ":"+ 59 + ":"+ 59;
||以下代码在日期后附加23小时、59毫秒和59秒

let setStartSTime = new Date(my_date);
setStartSTime = setStartSTime.getFullYear() + "-"
              + (setStartSTime.getMonth()+1) + "-"
              + setStartSTime.getDate()+" "
              + 00 + ":"+ 00 + ":"+ 00;
    console.log(setStartSTime + 'setStartSTime');
let endStartSTime = new Date(my_date);
    endStartSTime = endStartSTime.getFullYear() + "-"
                  + (endStartSTime.getMonth()+1) + "-"
                  + endStartSTime.getDate()+" "
                  + 23 + ":"+ 59 + ":"+ 59;
服务器托管在美国亚马逊服务器上。这就是为什么Date对象比我经过的日期晚一天

如果我通过25号,那就需要24号,对于24号,是23号,儿子

我怎么能推翻这件事? 我在服务器端使用nodejs
我希望我能解释清楚。

解释

这是因为服务器上的时区,我们有默认的UTC时间(我们也可以设置我们选择的默认时区)。因此,基本上,由于您来自印度,您的时区比UTC早5:30小时(330分钟),这就是为什么您可能会遇到问题。如果您的服务器设置为美国时区,则您可能比印度时间晚11-12小时

解决方案

您可以检查服务器时间(很可能是UTC),然后您可以从客户端获取时区并相应地创建日期,这样您就可以保持通用计时,而不是特定于国家或地区。

“这是因为服务器上的时区,我们有默认UTC时间”您怎么知道的?默认情况下,Amazon Linux实例设置为UTC(协调世界时)时区,但您可能希望将实例上的时间更改为本地时间或网络中的其他时区。my_date的值是多少?如果它是ISO 8601仅限日期的格式,如“2017-05-22”,则应在任何符合ECMAScript 2015或更高版本的系统上解析为UTC。getFullYear等方法返回由主机时区偏移量调整的本地值,因此不同的时区偏移量意味着您获得不同的本地时间。2017-05-17(yyyy-MM-dd)