私が取り組んでいる angularJS アプリケーションでは、SQL サーバーを使用してデータを提供しています。そこに奇妙なことは何もありません。私は日付の衛生管理を任されているため、アプリケーションに渡される SQL 最小日付値を持つオブジェクトは定義されておらず、日付を持つオブジェクトは JavaScript の Date オブジェクトです。
アップグレード中に、最小日付に定義されている文字列が変更されることがあります。現在、0001-01-01T00:00:00Z です。変更される可能性があるため、文字列比較だけではできません。
私の問題は、JavaScriptでこの最小日付を決定するにはどうすればよいですか? new Date(varThatIsMinDate) は有効な日付です。MomentJS も有効であると考えており、技術的には有効な日付です。検証についてはあまり心配していませんが、「最小日付ですか」について心配しています。
ズールー語のパターン 0001-01-01T00:00:00Z または javascript で同様のものから最小日付 === 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 を使用することができましたが、これを正しい方法で行う方法を知りたいです。