【发布时间】:2017-05-25 18:55:44
【问题描述】:
如果日期格式是$scope.timestamp = '2016-12-16 07:02:15 am'
我想格式化为16/12/2016 07:02:15 am
我已经尝试了下面的代码,它运行良好
$scope.originalStamp = $filter('date')
(new Date($scope.timestamp.replace("-","/")),'dd-MM-yyyy HH:mm:ss a');
但我的问题是为什么
new Date($scope.timestamp)总是返回null如果我不使用将字符从 (-) 替换为 (/)?
如果不使用replace().,请参阅下面的代码不起作用
$scope.originalStamp = $filter('date')
(new Date($scope.timestamp),'dd-MM-yyyy HH:mm:ss a');
如果日期格式有 (-),为什么
new Date()不接受? new Date() 转换是否取决于我的系统日期格式?
【问题讨论】:
-
您根本不应该使用 Date 构造函数来解析字符串。编写一个小函数或使用库。它不应该返回 null,而是返回一个无效的 Date(即时间值为 NaN 的 Date 对象),稍后可能会被解释为 null。
-
你试过 01-01-2016 吗?
-
'yyyy-MM-dd HH:mm:ss a',不是'dd-MM-yyyy HH:mm:ss a' -
@AtaurRahmanMunna——你读过 OP 吗?
-
@RameshRajendran — 在实现中可能会认为“2016/12/16”是对 ISO 8601 日期字符串的无效尝试并返回 NaN,或者它可能会认为它是不是 ISO 8601 并回退到它想要的任何启发式方法,可能会返回 2016 年 12 月 16 日的日期。这两种行为都与 ECMA-262 一致。
标签: javascript angularjs date format