gpt4 book ai didi

javascript - Angular js - isDate() 将不起作用

转载 作者:行者123 更新时间:2023-11-30 10:17:53 27 4
gpt4 key购买 nike

我正在尝试检查一个值是否是这样的日期:

var input = "2014-04-01T15:22:30.000Z";

var dateTime = {
year: $filter('date')(input,'yyyy'),
day: $filter('date')(input,'EEE'),
dayNum: $filter('date')(input,'d'),
month: $filter('date')(input,'MMM'),
hours:$filter('date')(input,'H'),
mins: $filter('date')(input,'m'),
seconds:$filter('date')(input,'ss')
};

if(angular.isDate(dateTime.year+' '+dateTime.month+' '+dateTime.dayNum)) {
// always false
}

为什么总是假的?

正确过滤了年、月等片段:/

最佳答案

以下陈述总是错误的,也许您对 isDate 工作原理的假设不正确?

angular.isDate('2014 Mar 1');

这是 source code for the isDate function .您会看到它检查提供的值是否是 javascript Date 对象。

function isDate(value){
return toString.call(value) === '[object Date]';
}

您可能想知道为什么 Angular 允许您执行以下操作:

var input = "2014-04-01T15:22:30.000Z";
var year = $filter('date')(input,'yyyy');

这是因为date filter实际上在返回格式化副本之前将您的输入转换为日期。因此,对于日期过滤器,它允许您传入一个字符串,但 isDate 函数需要一个 Date 对象。

关于javascript - Angular js - isDate() 将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938734/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com