在我正在开发的 angularJS 应用程序中,我们使用 SQL 服务器来提供数据。那里没什么奇怪的。我的任务是处理日期,因此传递到我们的应用程序中的具有 SQL 最小日期值的对象是未定义的,而那些确实有日期的对象是 javascript Date 对象。
我知道在升级过程中,有时为 min date 定义的字符串可能会改变。现在,它是 0001-01-01T00:00:00Z。我不能只进行字符串比较,因为它可能会改变。
我的问题是,我如何在 javascript 中确定这个最小日期?new Date(varThatIsMinDate) 是有效日期。MomentJS 也认为它是有效的,它在技术上是一个有效的日期。我不太担心验证,更担心“是最低日期”
您如何从 zulu 模式 0001-01-01T00:00:00Z 或类似的 javascript 中确定 min date === true ?
到目前为止我的代码,因为我知道你会要求它:
if (response.config.responseType === 'json') {
for (var property in response.data) {
if (response.data.hasOwnProperty(property)) {
if (property.toUpperCase().indexOf('DATE') > -1 || property.toUpperCase().indexOf('TIME') > -1) {
console.log(property.toUpperCase());
// Attempt to use JS built in date and validate
var tmpDate = new Date(response.data[property]);
if ($moment(tmpDate).isValid()) {
// Make it a valid date object if it has a valid date
response.data[property] = tmpDate;
} else {
// Make it undefined
response.data[property] = undefined;
}
}
}
}
}
事情是,它总是有效的,所以这段代码不起作用。
编辑:我可以作弊并使用 tmpDate.getUTCFullYear() === 1 但我想知道如何以正确的方式做到这一点。