【问题标题】:formatting <input type="time"> to 12 hour format with no seconds/milliseconds将 <input type="time"> 格式化为 12 小时格式,没有秒/毫秒
【发布时间】:2015-03-06 04:48:23
【问题描述】:

我正在尝试格式化一些时间以进行显示。

  <input ng-change="changeTimeBehaviours()" ng-model="booking.time" type="time" >

如何将格式添加为 h:mma 格式? (例如下午 2:30)

我用过

var _time = new Date().toLocaleTimeString(navigator.language,{hour:'2-digit', minute: '2-digit'});

它完成了这项工作,但我不能将它与 type='time' 一起使用,因为它需要一个日期时间对象而不是字符串。

我正在使用

{{booking.time | date:"h:mma"}}

在另一个部分的模板中,它可以完美运行。

~编辑

我正在使用 ionic serve 来测试应用程序,它给了我这个时间

11:59:18.046 下午

当我关闭退出服务并刷新页面时,chrome 的时间标记正是我想要的,

晚上 11:59

所以我得出的结论是,这与 ionic 或 cordova 如何构建 type="time"

~编辑2

似乎是本地化问题,因为它在 ios 上也可以正常工作。

【问题讨论】:

  • 小提琴/plnkr 请。默认情况下&lt;input type="time" &gt; 具有 24H:mm 格式
  • 我无法解决它,因为它只在使用 ionic serve 测试应用程序时发生。

标签: angularjs html cordova ionic-framework


【解决方案1】:

你正在使用 angularjs 表达式

{{booking.time | date:"h:mma"}}
这将仅在 UI 端过滤您的数据。所以改变你的控制器中的逻辑类似于这个
var sdf = new SimpleDateFormat("HH:mm");
var _time = sdf.format(new Date());

【讨论】:

  • 这有效并返回一个字符串,但 需要一个日期对象而不是字符串,因此它不会显示。我尝试使用 new Date($filter('date')(new Date(),'HH:mma'));从字符串中创建日期对象,但是当我将该新对象放入 html 时它没有显示(但也没有抛出错误,所以我可能在正确的轨道上)
猜你喜欢
  • 1970-01-01
  • 2011-10-20
  • 2011-09-26
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
相关资源
最近更新 更多