date-fns 的 isValid 和 luxon 的 isValid 之间的区别

Difference between date-fns' isValid and luxon's isValid

如我的问题所述。我真的不明白 date-fns 的 isValid 和 luxon 的 isValid 之间的区别。我有一个日期字符串变量和一个用 new Date().

调用日期字符串的变量

我的日期字符串是这样的:Fri Feb 11 2022 02:00:00 GMT+0200 (Eastern European Standard Time)

我有几个问题:

  1. 为什么日期字符串对 date-fnsluxon 都无效?

  2. new Date()date-fns 中调用的日期字符串变量 return 为假,但在 luxon 中 return 为真

我在 codesand-box

中分享了我的代码

这是我的全部代码

import { isValid } from "date-fns";
import { DateTime } from "luxon";

const onlyDateString =
  "Fri Feb 11 2022 :00:00 GMT+0200 (Eastern European Standard Time)";

const dateString = new Date(
  "Fri Feb 11 2022 :00:00 GMT+0200 (Eastern European Standard Time)"
);

const dateStringDateFns = isValid(onlyDateString);
const dateStringLuxon = DateTime.fromISO(onlyDateString).isValid;

const fs = isValid(dateString);
const lu = DateTime.fromISO(dateString).isValid;



document.getElementById("app").innerHTML = `
<p> Date string </p>
<div> ${dateStringDateFns}</div>
<div>${dateStringLuxon}</div>
<br/>
<p> Date string with new Date </p>
<div>${fs}</div>
<div>${lu}</div>

`;

DateTime 的 fromISO 接受字符串。我正在将字符串与 Date 进行比较。那是错误的。解决方案是fromJSDate

DateTime.fromJSDate(dateString).isValid