调用angular.isDate()的最佳解决方案

时间:2016-08-17 13:45:06

标签: javascript angularjs

我想查看我的变量类型,是日期。我想使用angular.isDate()函数。

如果我的变量有值“2016-08-10T08:38:49.397”angular.isDate()返回false,我该怎么办?

<div ng-app="autoDrops" ng-controller="testController">
      {{isDate(date)}}
<div>

var autoDrops = angular.module('autoDrops', []);
autoDrops.controller('testController', function ($scope) {
        $scope.date = '2016-08-10T08:38:49.397'
    $scope.isDate = function(value){
        return angular.isDate(value);
    }
});

示例位于(jsfiddle

1 个答案:

答案 0 :(得分:0)

angular.isDate从字面上检查给定值是否为Date的实例。如果您想解析字符串以查看它是否包含可以解释为日期的值,请使用Date.parse

> Date.parse('woeriug')
< NaN
> Date.parse('2016-08-10T08:38:49.397')
< 1470818329397

然而,as MDN notes

  

由于浏览器差异和不一致,强烈建议不要使用Date.parse解析字符串。

如果您想要更高的可靠性,请使用第三方库来实现健壮且与浏览器无关的日期解析(或自己动手)。