如何以 12 小时格式 (AM/PM) 显示 JavaScript 日期时间对象?
如何以 12 小时 AM/PM 格式显示 JavaScript 日期时间?
IT技术
javascript
datetime
date
time
format
2021-01-24 14:55:19
6个回答
function formatAMPM(date) {
var hours = date.getHours();
var minutes = date.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0'+minutes : minutes;
var strTime = hours + ':' + minutes + ' ' + ampm;
return strTime;
}
console.log(formatAMPM(new Date));
如果您只想显示小时,那么..
var time = new Date();
console.log(
time.toLocaleString('en-US', { hour: 'numeric', hour12: true })
);
输出:早上 7 点
如果您还想显示会议记录,那么...
var time = new Date();
console.log(
time.toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true })
);
输出:上午 7:23
这是使用正则表达式的一种方法:
console.log(new Date('7/10/2013 20:12:34').toLocaleTimeString().replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/, "$1$3"))
console.log(new Date('7/10/2013 01:12:34').toLocaleTimeString().replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/, "$1$3"))
这将创建 3 个匹配组:
([\d]+:[\d]{2})
- 小时:分钟(:[\d]{2})
- 秒(.*)
- 空格和句号(句号是 AM/PM 的正式名称)
然后显示第 1 组和第 3 组。
警告:toLocaleTimeString() 的行为可能因地区/位置而异。
如果您不需要打印 am/pm,我发现以下内容简洁明了:
var now = new Date();
var hours = now.getHours() % 12 || 12; // 12h instead of 24h, with 12 instead of 0.
这是基于@bbrame 的回答。
据我所知,在没有扩展和复杂编码的情况下实现这一目标的最佳方法是这样的:
date.toLocaleString([], { hour12: true});
<!DOCTYPE html>
<html>
<body>
<p>Click the button to display the date and time as a string.</p>
<button onclick="myFunction()">Try it</button>
<button onclick="fullDateTime()">Try it2</button>
<p id="demo"></p>
<p id="demo2"></p>
<script>
function myFunction() {
var d = new Date();
var n = d.toLocaleString([], { hour: '2-digit', minute: '2-digit' });
document.getElementById("demo").innerHTML = n;
}
function fullDateTime() {
var d = new Date();
var n = d.toLocaleString([], { hour12: true});
document.getElementById("demo2").innerHTML = n;
}
</script>
</body>
</html>
我发现这个检查了这个问题。
其它你可能感兴趣的问题