我正在使用momentJs并使用它创建日期对象来执行验证,如果给定的日期值与区域设置和格式是否匹配。
当我用Moment()创建对象时,它给出了无效日期。
下面是我在应用程序中使用的样例代码。
const dateStr = "วันศุกร์ที่ 30 มิถุนายน พ.ศ. 2566";
const formatStr = "ddddที่ d MMMM G yyyy";
const someday = moment(dateStr, formatStr, "th");
console.log(someday);
输出-Invalid Date
_d: Invalid Date {}_
f: "ddddที่ d MMMM G yyyy"_
i: "วันศุกร์ที่ 30 มิถุนายน พ.ศ. 566"
_isAMomentObject: true
_isUTC: false
_isValid: false
_l: "th"
如有任何帮助,不胜感激。
只需导入https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/locale/th.min.js after moment.js库,并将formatStr
变量中的D
更改为d
即可解决此错误。
const dateStr = "วันศุกร์ที่ 30 มิถุนายน พ.ศ. 2566";
const formatStr = "ddddที่ D MMMM G yyyy";
const someday = moment(dateStr, formatStr, "th");
console.log(someday);
const formattedDate = someday.locale("th").format(formatStr);
console.log(formattedDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/locale/th.min.js"></script>