如何以12小时格式(AM/PM)显示JavaScript datetime对象?
当前回答
使用dateObj。toLocaleString([地区[选项]])
选项1 -使用区域设置
var date = new Date();
console.log(date.toLocaleString('en-US'));
选项2 -使用选项
var options = { hour12: true };
console.log(date.toLocaleString('en-GB', options));
注:支持除safari atm以外的所有浏览器
其他回答
var d = new Date(); var hours = d.getHours() % 12; hours = hours ? hours : 12; var test = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][(d.getMonth() + 1)] + " " + ("00" + d.getDate()).slice(-2) + " " + d.getFullYear() + " " + ("00" + hours).slice(-2) + ":" + ("00" + d.getMinutes()).slice(-2) + ":" + ("00" + d.getSeconds()).slice(-2) + ' ' + (d.getHours() >= 12 ? 'PM' : 'AM'); document.getElementById("demo").innerHTML = test; <p id="demo" ></p>
如果你不需要打印上午/下午,我发现以下内容很好很简洁:
var now = new Date();
var hours = now.getHours() % 12 || 12; // 12h instead of 24h, with 12 instead of 0.
这是基于@bbrame的回答。
您可以使用这段简单的代码来确定am或PM
var today=new Date();
var noon=new Date(today.getFullYear(),today.getMonth(),today.getDate(),12,0,0);
var ampm = (today.getTime()<noon.getTime())?'am':'pm';
如果你把时间设置为字符串,输入var myTime = "15:30" 然后您可以使用下面的代码来获取am pm。
var hour = parseInt(myTime.split(":")[0]) % 12;
var timeInAmPm = (hour == 0 ? "12": hour ) + ":" + myTime.split(":")[1] + " " + (parseInt(parseInt(myTime.split(":")[0]) / 12) < 1 ? "am" : "pm");
这是最简单的方法,你可以实现这使用三元操作符,或者你也可以使用if else代替!
const d = new Date();
let hrs = d.getHours();
let m = d.getMinutes();
// Condition to add zero before minute
let min = m < 10 ? `0${m}` : m;
const currTime = hrs >= 12 ? `${hrs - 12}:${min} pm` : `${hrs}:${min} am`;
console.log(currTime);