Javascript JS中递增时间戳(YYYY-MM-DDTHH:MM:SS)的问题
我试图将格式为(YYYY-MM-DDTHH:MM:SS)的时间戳的时间增加1小时。在22:00之前,这一切都很好。但是,当输入时间为23:00:00时,时间组件将正确更改为00:00:00,但相应的日期将增加到一个月以上(跳1个整月)。例如2020-07-31T23:00:00更改为2020-09-01T00:00:00。在此方面的任何帮助都将不胜感激Javascript JS中递增时间戳(YYYY-MM-DDTHH:MM:SS)的问题,javascript,date,time,timestamp,Javascript,Date,Time,Timestamp,我试图将格式为(YYYY-MM-DDTHH:MM:SS)的时间戳的时间增加1小时。在22:00之前,这一切都很好。但是,当输入时间为23:00:00时,时间组件将正确更改为00:00:00,但相应的日期将增加到一个月以上(跳1个整月)。例如2020-07-31T23:00:00更改为2020-09-01T00:00:00。在此方面的任何帮助都将不胜感激 var-sdate='2020-07-31T23:00:00'; var temp1=sdate.split('T'); 文件编写(temp1
var-sdate='2020-07-31T23:00:00';
var temp1=sdate.split('T');
文件编写(temp1);
var d=temp1[0]。拆分('-');
var t=temp1[1]。拆分(“:”);
文件。写(“
”);
文件编写(d);
文件。写(“
”);
文件。编写(t);
var dt3=新日期(d[0],d[1],d[2],t[0],t[1],t[2],0);
var dt4=dt3.setSeconds(dt3.getSeconds()+3600);
var最终=新日期(dt4);
文件。写(“
”);
文件编写(最终);
文件。写(“
”);
document.write(final.getFullYear());
文件。写(“
”);
document.write(final.getMonth());
文件。写(“
”);
document.write(final.getDate());
文件。写(“
”);
document.write(final.getHours());
文件。写(“
”);
document.write(final.getMinutes());
文件。写(“
”);
document.write(final.getSeconds())代码>为什么会出现这些复杂情况?JS有自己的
您只需通过以下方式即可实现小时数增加1:
var sdate=新日期('2020-07-31T23:00:00');
log(sdate.toISOString());
sdate.setHours(sdate.getHours()+1)
log(sdate.toISOString())代码>为什么会出现这些复杂情况?JS有自己的
您只需通过以下方式即可实现小时数增加1:
var sdate=新日期('2020-07-31T23:00:00');
log(sdate.toISOString());
sdate.setHours(sdate.getHours()+1)
log(sdate.toISOString())代码>您的问题是您认为七月实际上是八月,因为JavaScript构造函数上的月号是0索引的,所以在这一行中:
var dt3= new Date(d[0], d[1], d[2], t[0], t[1], t[2], 0);
你正在设定8月31日。
有关更多信息,请访问您的问题是您认为七月实际上是八月,因为JavaScript构造函数上的月号是0索引的,所以在这一行:
var dt3= new Date(d[0], d[1], d[2], t[0], t[1], t[2], 0);
你正在设定8月31日。
有关更多信息,请访问您将7作为月份传递给构造函数,但月份计数从0开始,因此您认为现在是7月,但现在已经是8月了!时光飞逝
这意味着当你加上一个小时,你就过了午夜进入了九月
var-sdate='2020-07-31T23:00:00';
var temp1=sdate.split('T');
document.write(`date我想我的开头是:${sdate}`);
var d=temp1[0]。拆分('-');
var t=temp1[1]。拆分(“:”);
var dt3=新日期(d[0],d[1],d[2],t[0],t[1],t[2],0);
文件。写(“
”);
write(`date我实际上以:${dt3.toISOString()}`)开头)代码>您将7作为月份传递给构造函数,但是月份计数从0开始,所以您认为是7月,但已经是8月了!时光飞逝
这意味着当你加上一个小时,你就过了午夜进入了九月
var-sdate='2020-07-31T23:00:00';
var temp1=sdate.split('T');
document.write(`date我想我的开头是:${sdate}`);
var d=temp1[0]。拆分('-');
var t=temp1[1]。拆分(“:”);
var dt3=新日期(d[0],d[1],d[2],t[0],t[1],t[2],0);
文件。写(“
”);
write(`date我实际上以:${dt3.toISOString()}`)开头)代码>使用内置对象使用内置对象非常感谢-这非常好。只是一个简单的问题-我如何以“YYYY-MM-DDTHH:MM:SS”的格式将其取回?目前显示为2020年8月1日星期六00:00:00。toISOString()
应提供您想要的格式,并且不要忘记将答案标记为已接受。不要使用内置解析器。将Safari中的结果与其他浏览器进行比较,请参见,在添加1小时后,我无法将其恢复为YYYY-MM_DDTHH:MM:SS的格式,如您所述。你能帮个忙吗。toISOString()无法使用这种格式。非常感谢您-这非常好用。只是一个简单的问题-我如何以“YYYY-MM-DDTHH:MM:SS”的格式将其取回?目前显示为2020年8月1日星期六00:00:00。toISOString()
应提供您想要的格式,并且不要忘记将答案标记为已接受。不要使用内置解析器。将Safari中的结果与其他浏览器进行比较,请参见,在添加1小时后,我无法将其恢复为YYYY-MM_DDTHH:MM:SS的格式,如您所述。你能帮个忙吗。toISOString()无法使用此格式。