我正在尝试将booking.date
转换为01/06/2016
格式'EEEE, MMMM d, y' (Wednesday, June, 1, 2016)
格式<p style="small">{{ booking.date | date:'fullDate' }}<br>{{ booking.time }}</p>
。我已经尝试了以下AngularJS过滤器date,但它似乎无法正常工作。有什么建议吗?
2016-05-31T19:18:24Z
我还有其他格式的日期:<select>
其他地方,我可以采取另一种方法吗?
答案 0 :(得分:1)
您不应该使用 Date 构造函数或 Date.parse 来解析字符串(它们等同于解析)。总是手动解析字符串,库可以提供帮助(有很多可供选择),但如果你只有一种格式,那么简单的功能就足够了。
要解析d / m / y格式的字符串(这是非常广泛使用的,它对英国来说并不是m / d / y对美国的方式所特有的)并验证值,使用像:
这样的函数
/* Parse a date string in d/m/y format
** @param {string} s - date string
** @returns {Date} If date is invalid, returns an invalid Date
*/
function parseDMY(s) {
var b = (''+s).split(/\D/);
var d = new Date(b[2], --b[1], b[0]);
return d && d.getMonth() == b[1]? d : new Date(NaN);
}
document.write(parseDMY('01/05/2016'));
&#13;