Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 toISOString()设置用户输入日期前一天的日期?_Javascript_Date_Utc_Isodate - Fatal编程技术网

JavaScript toISOString()设置用户输入日期前一天的日期?

JavaScript toISOString()设置用户输入日期前一天的日期?,javascript,date,utc,isodate,Javascript,Date,Utc,Isodate,当我试图转换用户输入的日期(如05/13/1978时,我希望将ISO格式的日期发送到服务器,因为后端接受该日期 new Date('05/13/1978); 产出: Sat May 13 1978 00:00:00 GMT+0100 (British Summer Time) 这是预期的,但将转换为ISO日期,以便将POST发送到我需要调用.toISOString()的服务器,该服务器将输出: 1978-05-12T23:00:00.000Z 为什么用户输入恢复到1978年5月12日23:

当我试图转换用户输入的日期(如
05/13/1978
时,我希望将ISO格式的日期发送到服务器,因为后端接受该日期

new Date('05/13/1978);
产出:

Sat May 13 1978 00:00:00 GMT+0100 (British Summer Time)
这是预期的,但将转换为ISO日期,以便将
POST
发送到我需要调用
.toISOString()
的服务器,该服务器将输出:

1978-05-12T23:00:00.000Z
为什么用户输入恢复到1978年5月12日23:00


如果当用户
获取带有该值的响应时,该值存储在数据库中,它将在浏览器中输出
05/13/1978
05/12/1978

05/13/1978
是一种非标准日期格式,处理将取决于实现,可能无法按预期工作。您应该使用显式构造函数将日期的不同部分作为数字传递,或者使用符合标准的字符串,这是ISO的一个变体。检查并注意时区的变化。这正是您在案例中看到的情况-假定字符串位于本地时区,但
toISOString
返回UTC格式的字符串,UTC将根据时区偏移调整日期。如果你领先,那么时钟就会倒转,因此你在前一天从
00:00+01:00
23:00Z
。线索实际上在你的输出部分。时间包括1小时的英国夏令时。如果没有时间,实际的格林尼治标准时间/UTC/Z时间是前一天晚上11点。