从toLocaleTimeString中删除秒数

mat*_*e64 12 javascript regex date

Date.prototype.toLocaleTimeString()方法返回一个字符串,其中包含该日期时间部分的语言敏感表示.它适用于现代浏览器.

不幸的是,本机功能无法阻止输出.默认情况下,它输出类似hh:mm:sshh:mm AM/PM等的时间格式.

第二:第二个的表示.可能的值为" numeric"," 2-digit".

来源:MDN参考

这意味着,你不能使用类似的东西{second: false}.


我正在寻找一个简单的愚蠢解决方案,从格式化的字符串中删除秒hh:mm:ss.

var date = new Date();
var time = date.toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit'});
console.log(time); // 15:24:07
Run Code Online (Sandbox Code Playgroud)

这正则表达式工作:

time.replace(/:\d\d( |$)/,'');
time.replace(/(\d{2}:\d{2})(?::\d{2})?(?:am|pm)?/);
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 8

您可以使用:

var time = date.toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit'})
           .replace(/(:\d{2}| [AP]M)$/, "");
Run Code Online (Sandbox Code Playgroud)

顺便Google Chrome回来

new Date().toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit'});
Run Code Online (Sandbox Code Playgroud)

"12:40 PM"