gpt4 book ai didi

javascript - 解析具有不同格式的日期的通用方法

转载 作者:行者123 更新时间:2023-11-30 18:32:08 24 4
gpt4 key购买 nike

我需要创建一个 javascript checkDateFormat 函数,它接受两个字符串参数:

  1. 日期字符串
  2. 格式化字符串

它应该根据格式字符串检查日期字符串的格式是否正确。

例如:

checkDateFormat("12-32-2012", "dd-MM-yyyy") // false

用户可能会更改格式字符串,我需要相应地检查日期。

我搜索了很多,但找不到实现我需要的通用函数。这是可以实现的还是有必要为所有可能的日期格式编写不同的实现?

谢谢。

最佳答案

也许这就是您想要的?

function chkdate(datestr,formatstr){
if (!(datestr && formatstr)) {return false;}
var splitter = formatstr.match(/\-|\/|\s/) || ['-']
,df = formatstr.split(splitter[0])
,ds = datestr.split(splitter[0])
,ymd = [0,0,0]
,dat;
for (var i=0;i<df.length;i++){
if (/yyyy/i.test(df[i])) {ymd[0] = ds[i];}
else if (/mm/i.test(df[i])) {ymd[1] = ds[i];}
else if (/dd/i.test(df[i])) {ymd[2] = ds[i];}
}
dat = new Date(ymd.join('/'));
return !isNaN(dat) && Number(ymd[1])<=12 && dat.getDate()===Number(ymd[2]);
}
//usage
console.log(chkdate ('12/12/2009', 'dd/mm/yyyy')); //=> true
console.log(chkdate ('12/32/2009', 'dd/mm/yyyy')); //=> false
console.log(chkdate ('2002/02/02', 'yyyy-dd-mm')); //=> false
console.log(chkdate ('02-12-2001', 'dd-mm-yyyy')); //=> true
console.log(chkdate ('02-12-2001', 'dd mm yyyy')); //=> false

关于javascript - 解析具有不同格式的日期的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9356846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com