将英国格式和Django格式的日期转换为实际日期

时间:2016-06-01 21:55:26

标签: javascript angularjs date

我正在尝试将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>其他地方,我可以采取另一种方法吗?

1 个答案:

答案 0 :(得分:1)

您不应该使用 Date 构造函数或 Date.parse 来解析字符串(它们等同于解析)。总是手动解析字符串,库可以提供帮助(有很多可供选择),但如果你只有一种格式,那么简单的功能就足够了。

要解析d / m / y格式的字符串(这是非常广泛使用的,它对英国来说并不是m / d / y对美国的方式所特有的)并验证值,使用像:

这样的函数

&#13;
&#13;
/* 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;
&#13;
&#13;