为什么在javascript中,日期对象只在服务器端延迟一天,而在本地主机上不延迟一天?
以下代码在日期上附加00小时、mts和sec为什么在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;
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)