繁体   English   中英

javascript怎么设置am/pm

[英]How to set am/pm in javascript

我正在使用new Date()创建自定义时间,我还使用 function 将时间格式化为上午/下午:

 const formatTimeAMPM = (date, midnight = { am: "AM", pm: "PM" }) => { var hours = date.getHours(); var minutes = date.getMinutes(); var ampm = hours >= 12? ` ${midnight.am}`: ` ${midnight.pm}`; hours = hours % 12; hours = hours? hours: 12; // the hour '0' should be '12' minutes = minutes < 10? "0" + minutes: minutes; hours = hours < 10? "0" + hours: hours; var strTime = hours + ":" + minutes + " " + ampm; return strTime; }; let startDate = new Date(Date.now()); console.log('before change:',formatTimeAMPM(startDate)); startDate.setHours(8, 30, 0, 0); console.log('after change:',formatTimeAMPM(startDate));

如果您运行该代码段,您将在晚上 8 点 30 分看到控制台日志,有人能告诉我当我更改开始日期的时间时如何设置它吗?

您的上午/下午支票倒退了:

var ampm = hours >= 12 ? ` ${midnight.am}` : ` ${midnight.pm}`;

如果小时 >= 12,则应该是下午而不是上午,所以它应该是:

var ampm = hours >= 12 ? ` ${midnight.pm}` : ` ${midnight.am}`;

现在,如果您运行它,它将显示8:30 AM ,如果您将小时设置为20 ,它将显示8:30 PM

这将解决您当前的问题,但最好使用现有库进行日期格式化,因为它会变得复杂,尤其是使用 i18n 时。 有几个流行的,例如date- fns 和moment.js可以为您完成繁重的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM