Я хочу проверить свой тип переменной, это дата. Я хочу использовать функцию 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)
angular.isDate
буквально проверяет, является ли данное значение экземпляром Date
. Если вы хотите проанализировать строку, чтобы увидеть, содержит ли она значение, которое может быть интерпретировано как дата, используйте Date.parse
:
> Date.parse('woeriug')
< NaN
> Date.parse('2016-08-10T08:38:49.397')
< 1470818329397
Однако, как отмечает MDN:
Разбор строк с
Date.parse
сильно обескуражен из-за различий браузера и несоответствий.
Если вы хотите большей надежности, используйте стороннюю библиотеку, которая реализует надежный и независимый от браузера синтаксический анализ даты (или сделайте это самостоятельно).
isDate
проверяет, является ли значение буквально экземпляромDate
, а не строкой, которую можно интерпретировать как date…