Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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上从ISO日期中删除秒和毫秒_Javascript_Reactjs_Date_Iso - Fatal编程技术网

如何在Javascript上从ISO日期中删除秒和毫秒

如何在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

我有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.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。