let isoDate = '2018-01-01T18:00:00Z';
我需要使用任何方法事件时刻仅提取18:00。
答案 0 :(得分:1)
以下是普通JavaScript
中的快速单行解决方案:
console.log("2018-01-01T18:00:00Z".replace(/^[^:]*([01]\d:[01]\d).*$/, "$1"));
如果您获得的日期是Date
的实例而不是字符串,那么您可以使用toISOString
轻松转换它,如下所示:
let date = new Date('2018-01-01T18:00:00Z');
console.log(date.toISOString().replace(/^[^:]*([01]\d:[01]\d).*$/, "$1"));
答案 1 :(得分:0)
您可以使用momentjs。
默认情况下,时刻会以本地时间进行分析和显示。 如果要以UTC格式解析或显示片刻,可以使用moment.utc()而不是moment()
var t = moment.utc("2018-01-01T18:00:00Z").format("HH:mm")
console.log(t)

<script src="https://cdn.jsdelivr.net/npm/moment@2.19.3/moment.min.js"></script>
&#13;
答案 2 :(得分:0)
您可以使用正则表达式来匹配该特定区域。
let isoDate = '2018-01-01T18:00:00Z';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);
&#13;
答案 3 :(得分:0)
Vanilla Javascript实施。
const dateObj = new Date('2018-01-01T18:00:00Z');
let hour = dateObj.getUTCHours();
let minute = dateObj.getUTCMinutes();
console.log(hour, minute);
&#13;
这使用了Date
内置的Javascript对象。如果您不想为此目的添加外部库,则应该查看它。
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
答案 4 :(得分:0)
我收到了以下日期,并抓住时间,这对我有用
let isoDate= '2020-09-28T15:27:15+05:30';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);
输出将只是isoDate中的时间,
15:27
答案 5 :(得分:0)
您可以使用正则表达式组:
const ISODateFormat = '2021-07-19T13:04:20.602Z';
const regex = /([0-9]{4}-[0-9]{2}-[0-9]{2})?.([:0-9]+)/;
console.log(ISODateFormat.match(regex));
// expected output: Array ["2021-07-19T13:04:20", "2021-07-19","13:04:20"]