如何在Javascript上从ISO日期中删除秒和毫秒
我有datetime“2021-05-26T06:19:45.854Z”,我想删除秒和毫秒。 期望的结果类似于“2021-05-26T06:19:00.000Z”或“2021-05-26T06:19Z” 我使用replace()方法设法删除毫秒,但无法删除秒如何在Javascript上从ISO日期中删除秒和毫秒,javascript,reactjs,date,iso,Javascript,Reactjs,Date,Iso,我有datetime“2021-05-26T06:19:45.854Z”,我想删除秒和毫秒。 期望的结果类似于“2021-05-26T06:19:00.000Z”或“2021-05-26T06:19Z” 我使用replace()方法设法删除毫秒,但无法删除秒 let ts = "2021-05-26T06:19:45.854Z"; console.log(ts); ts = ts.replace(/\.\d+/, ""); console.lo
let ts = "2021-05-26T06:19:45.854Z";
console.log(ts);
ts = ts.replace(/\.\d+/, "");
console.log(ts)
感谢您花时间回复一个选项是将日期视为
字符串
const ts=“2021-05-26T06:19:45.854Z”;
常量结果=ts.substring(0,19)+':00.000Z';/'2021-05-26T06:19:45:00.000Z'
考虑到日期始终为,您可以使用以下命令提取所需的部分:
const date=“2021-05-26T06:19:45.854Z”;
常量正则表达式=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/;
常量[匹配]=正则表达式执行(日期);
控制台日志(匹配)代码>可能有点粗糙,但由于ISO日期已正确标准化,您可以创建一个子字符串并附加时区信息:
功能条带秒数(isoDate){
返回isoDate.substring(0,16)+isoDate.substr(23);
}
例如:
let full=“2021-05-26T06:19:45.854Z”;
设modified=full.substring(0,16)+full.substr(23)
控制台日志(修改)代码>试试这个,希望有帮助
let ts = "2021-05-26T06:19:45.854Z";
console.log(ts);
let d = new Date(ts);
d.setSeconds(0,0);
console.log(d.toISOString());
您可以使用和轻松地获取字符串
const str=“2021-05-26T06:19:45.854Z”;
const result=`${str.slice(0,str.lastIndexOf(“:”)}Z`;
控制台日志(结果)代码>如果不需要字符串操作:
const timeStr=“2021-05-26T06:19:45.854Z”;
const dateFromStr=新日期(timeStr)
const dateHours=dateFromStr.getHours()
dateFromStr.setHours(dateHours)
dateFromStr.setSeconds(0)
dateFromStr.SetMillimes(0)
const dateISO=dateFromStr.toISOString()
const div=document.body.querySelector(“#test”)
div.textContent=dateISO
/\.\d+//code>->/:\d\d\.\d+/
?这会设置本地秒数,它应该使用UTC方法来设置UTC秒数。@RobG如果不关心秒数,会有很大的不同吗?他希望秒数始终为0。