Angular Materialの日付アダプターを作成していますが、提供されたオブジェクトがluxonDateTimeの場合にブール値を返す関数が必要です。
このようなもの(瞬間から):
isDateInstance(obj: any): boolean {
return moment.isMoment(obj);
}
私が持っているのはこれまでのところこれです-これで十分ですか?:
isDateInstance(obj: any): boolean {
try {
const luxonObject = DateTime.fromObject(obj);
return luxonObject.isValid;
} catch (error) {
return false;
}
}
あなたのコードは大丈夫だと思いますinstanceof
。ネイティブを使用できることをお勧めします。
const DateTime = luxon.DateTime;
function isDateInstance(obj) {
return obj instanceof DateTime;
}
console.log( isDateInstance('') );
console.log( isDateInstance({}) );
console.log( isDateInstance(new Date()) );
console.log( isDateInstance(DateTime.local()) );
<script src="https://moment.github.io/luxon/global/luxon.min.js"></script>
編集:
Luxonはその中にisDateTime
メソッドを追加しましv.1.6.0
た
オブジェクトがDateTimeであるかどうかを確認します。コンテキストの境界を越えて機能する
したがって、更新されるソリューションは次のようになります。
const DateTime = luxon.DateTime;
function isDateInstance(obj) {
return DateTime.isDateTime(obj);
}
console.log( isDateInstance('') );
console.log( isDateInstance({}) );
console.log( isDateInstance(new Date()) );
console.log( isDateInstance(DateTime.local()) );
<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/global/luxon.js"></script>
からv.1.6.0
までv.1.8.3
isDateTime
与えるundefined
代わりにfalse
に起因する問題。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加