如何解决如何从 Javascript 上的 ISO 日期中删除秒和毫秒
我有日期时间“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)
感谢您抽出时间回复
解决方法
一种选择是将日期视为 string
...
const ts = "2021-05-26T06:19:45.854Z";
const result = ts.substring(0,19) + ':00.000Z'; // '2021-05-26T06:19:45:00.000Z'
,
考虑到日期总是ISO 8601,你可以用这个提取所需的部分:
const date = "2021-05-26T06:19:45.854Z";
const regex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/;
const [match] = regex.exec(date);
console.log(match);
可能有点笨拙,但由于 ISO 日期已正确标准化,您只需创建一个子字符串并附加时区信息:
function stripSeconds(isoDate) {
return isoDate.substring(0,16) + isoDate.substr(23);
}
示例:
let full = "2021-05-26T06:19:45.854Z";
let modified = full.substring(0,16) + full.substr(23)
console.log(modified);
试试这个,希望有帮助,
let ts = "2021-05-26T06:19:45.854Z";
console.log(ts);
let d = new Date(ts);
d.setSeconds(0,0);
console.log(d.toISOString());
,
您可以使用 slice 和 lastIndexOf
轻松获取字符串const str = "2021-05-26T06:19:45.854Z";
const result = `${str.slice(0,str.lastIndexOf(":"))}Z`;
console.log(result);
如果您不想要字符串操作:
const timeStr="2021-05-26T06:19:45.854Z";
const dateFromStr = new Date(timeStr)
const dateHours = dateFromStr.getHours()
dateFromStr.setHours(dateHours)
dateFromStr.setSeconds(0)
dateFromStr.setMilliseconds(0)
const dateISO = dateFromStr.toISOString()
const div = document.body.querySelector('#test')
div.textContent= dateISO
<div id='test'></div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。