use*_*130 8 javascript momentjs
任何人都可以告诉我如何使用moment.js将分钟转换为小时,并以hh:mm A格式显示.
例如,如果分钟为480,则应显示输出为08:00 AM.如果分钟为1080,则应显示输出为06:00 PM
Mag*_*int 25
假设您总是希望从午夜开始添加分钟,最简单的方法是:
moment.utc().startOf('day').add(480, 'minutes').format('hh:mm A')
Run Code Online (Sandbox Code Playgroud)
UTC的使用避免了夏令时转换的问题,这会导致时间根据相关日期而变化.
如果你真的想要在给定的一天午夜之后的分钟数,包括DST转换取出utc并使用:
moment().startOf('day').add(480, 'minutes').format('hh:mm A')
Run Code Online (Sandbox Code Playgroud)
请注意,接受的答案可能存在DST过渡问题.例如,如果您在美国的一部分观察DST:
moment('2016-03-13').hours(2).minutes(30).format('hh:mm A')
"03:30 AM"
Run Code Online (Sandbox Code Playgroud)
结果与预期不符,并且根据浏览器的不同,在返回和小时之间或前进一小时之间会有所不同.
编辑:原始答案已更新以修复错误.作为一个额外的评论,我会非常怀疑任何试图将一些分钟映射到民用时间的代码.底线是,当天480分钟并不总是上午8点.在您的问题的背景下考虑这一点.DST错误现在很可能.
use*_*097 12
您可以像这样执行基本算术:
function getTimeFromMins(mins) {
// do not include the first validation check if you want, for example,
// getTimeFromMins(1530) to equal getTimeFromMins(90) (i.e. mins rollover)
if (mins >= 24 * 60 || mins < 0) {
throw new RangeError("Valid input should be greater than or equal to 0 and less than 1440.");
}
var h = mins / 60 | 0,
m = mins % 60 | 0;
return moment.utc().hours(h).minutes(m).format("hh:mm A");
}
getTimeFromMins(480); // returns "08:00 AM"
getTimeFromMins(520); // returns "08:40 AM"
getTimeFromMins(1080); // returns "06:00 PM"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20170 次 |
| 最近记录: |