gpt4 book ai didi

javascript - 显示四位数小时字段的 Angular 过滤器日期

转载 作者:行者123 更新时间:2023-12-03 05:55:09 25 4
gpt4 key购买 nike

我正在尝试过滤 Date() 字段以在涉及小时时显示四位数字。下面的代码不起作用。我该怎么做才能具有以下格式:HHHH:mm:ss

app.filter('secondsToHHmmss', function($filter) {
return function(seconds) {
return $filter('date')(new Date(0, 0, 0, 0).setSeconds(seconds), 'HHHH:mm:ss');
};
})

我可以满足 dd:hh:mm:ss 格式,但问题是每当我初始化零值 Date() 对象时,天数总是显示等于 31。有办法解决这个问题吗?

最佳答案

TL;DR

尝试 00:hh:mm:ss00HHmmss

说明

HHHH 不是有效的小时格式,因此 Angular 无法正确解析它。有四种有效的小时格式:

  1. HH:一天中的小时,填充 (00-23)
  2. H:一天中的小时 (0-23)
  3. hh:上午/下午的小时,填充 (01-12)
  4. h:AM/PM 中的小时,(1-12)

(来源:https://docs.angularjs.org/api/ng/filter/date )

使用表达式 new Date(0, 0, 0, 0) 设置“零值日期”将始终返回 JavaScript 日期 Sun Dec 31 1899 00:00:00 加上您的本地时区偏移量和 TZID 缩写,这就是您看到 Angular 过滤器返回日期 31 的原因。

如果您只是想将占位符字符放入返回值的前两位数字中,则可以直接在格式化程序中执行此操作,例如00:hh:mm:ss00HHmmss

关于javascript - 显示四位数小时字段的 Angular 过滤器日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39966284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com