Gan*_*esh 104 javascript datetime date momentjs
以下是场景:
我有一个不同的String
日期和日期格式.例:
日期:2016-10-19
dateFormat:"DD-MM-YYYY".
我需要检查这个日期是否有效.
我试过以下事情
var d = moment("2016-10-19",dateFormat);
Run Code Online (Sandbox Code Playgroud)
d.isValid()
false
每次都会回来.Moment.js是否以给定格式解析日期?
然后我尝试DD-MM-YYYY
先将日期格式化,然后将其传递给Moment.js:
var d = moment("2016-10-19").format(dateFormat);
var date = moment(d, dateFormat);
Run Code Online (Sandbox Code Playgroud)
现在date.isValid()
给我想要的结果,但是这里Moment.js日期对象被创建了两次.我怎么能避免这个?有更好的解决方案吗?
仅供参考我不允许改变dateFormat
.
Gan*_*esh 160
能够找到解决方案.由于我得到的日期是ISO格式,只提供日期到时间将验证它,不需要传递dateFormat.
var date = moment("2016-10-19");
Run Code Online (Sandbox Code Playgroud)
然后date.isValid()
给出期望的结果.
小智 98
var date = moment('2016-10-19', 'DD-MM-YYYY', true);
您应该在调用时添加第三个参数moment
来强制执行严格的解析.以下是当前文档的相关部分http://momentjs.com/docs/#/parsing/string-format/它接近本节末尾.
Sam*_*iza 21
我刚刚发现了一个非常糟糕的案例。
moment('Decimal128', 'YYYY-MM-DD').isValid() // true
Run Code Online (Sandbox Code Playgroud)
tfm*_*gue 17
抱歉,但此线程上的任何给定解决方案是否确实回答了所提出的问题?
我有一个字符串日期和一个不同的日期格式。例如:日期:2016-10-19 日期格式:“DD-MM-YYYY”。我需要检查这个日期是否是一个有效的日期。
以下对我有用...
const date = '2016-10-19';
const dateFormat = 'DD-MM-YYYY';
const toDateFormat = moment(new Date(date)).format(dateFormat);
moment(toDateFormat, dateFormat, true).isValid();
// Note: `new Date()` circumvents the warning that
// Moment throws (https://momentjs.com/guides/#/warnings/js-date/),
// but may not be optimal.
Run Code Online (Sandbox Code Playgroud)
但老实说,不明白为什么moment.isDate()
(如文档所述)只接受一个对象。我认为还应该支持字符串。
gsc*_*ial 16
你走了:工作小提琴
$(function(){
var dateFormat = 'DD-MM-YYYY';
alert(moment(moment("2012-10-19").format(dateFormat),dateFormat,true).isValid());
});
Run Code Online (Sandbox Code Playgroud)
wak*_*poj 13
我将moment和新的Date一起使用来处理undefined
数据值的情况:
const date = moment(new Date("2016-10-19"));
因为: moment(undefined).isValid() == true
更好的方法是: moment(new Date(undefined)).isValid() == false
小智 8
console.log(` moment('2019-09-01', 'YYYY-MM-DD').isValid()? ` +moment('2019-09-01', 'YYYY-MM-DD').isValid())
console.log(` moment('2019-22-01', 'YYYY-DD-MM').isValid()? ` +moment('2019-22-01', 'YYYY-DD-MM').isValid())
console.log(` moment('2019-22-22', 'YYYY-DD-MM').isValid()? ` +moment('2019-22-22', 'YYYY-DD-MM').isValid())
console.log(` moment('undefined', 'YYYY-DD-MM').isValid()? ` +moment('undefined', 'YYYY-DD-MM').isValid())
moment('2019-09-01', 'YYYY-MM-DD').isValid()? true
moment('2019-22-01', 'YYYY-DD-MM').isValid()? true
moment('2019-22-22', 'YYYY-DD-MM').isValid()? false
moment('undefined', 'YYYY-DD-MM').isValid()? false
Run Code Online (Sandbox Code Playgroud)
小智 6
我用的是moment.js
let value = '19-05-1994';
let check = moment(value,'DD-MM-YYYY', true).isValid();
console.log(check) //returns true
return check
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
126540 次 |
最近记录: |