【发布时间】:2020-01-13 09:28:05
【问题描述】:
接受的时间应该是,基本上应该是 00 或 30。
9:00 AM
不像:
12:34 AM
我可以想到常规的 exp。还有其他方法吗?我可以使用moment.js。
有什么建议吗?
【问题讨论】:
-
@shrys 不,我只需要一个条件来找出答案。
标签: javascript time format momentjs
接受的时间应该是,基本上应该是 00 或 30。
9:00 AM
不像:
12:34 AM
我可以想到常规的 exp。还有其他方法吗?我可以使用moment.js。
有什么建议吗?
【问题讨论】:
标签: javascript time format momentjs
您可以使用以下正则表达式来测试您的字符串:
/^([0-1]?[0-9]|2[0-3]):[0|3][0]\s[A|P]M$/
const r = /^([0-1]?[0-9]|2[0-3]):[0|3][0]\s[A|P]M$/;
['9:00 AM',
'12:30 PM',
'3:30 PM',
'5:00 PM',
'12:30 PM',
'12:34 AM',
'3:21 PM',
'4:56 AM'
].forEach(a => console.log(a, r.test(a)));
【讨论】:
/^([0-1]?[0-9]|2[0-3]):[0|3][0]\s[A|P]M$/.test('12:30 AM')应该给你真实的
使用moment,可以这样使用:
const momentTime = moment(yourTime)
const minute = momentTime.minute()
if (minute === 0 || minute === 30) { // do your things }
但我认为@shrys 使用正则表达式可能会更好。
【讨论】:
对于这样的每个输入,您可以使用moment.js 对其进行解析并查询分钟:
let times = [
'9:00 AM',
'12:30 PM',
'3:30 PM',
'5:00 PM',
'12:30 PM',
'12:34 AM',
'3:21 PM',
'4:56 AM',
];
times.map(time => {
let parsedTime = moment(time, 'hh:mm');
let minutes = parsedTime.minutes();
if (minutes === 0 || minutes === 30) {
// do stuff
}
});
【讨论】: