Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有可能实施一种方法来;猜测;此日期格式基于数组中的信息?_Javascript_Date Format - Fatal编程技术网

Javascript 是否有可能实施一种方法来;猜测;此日期格式基于数组中的信息?

Javascript 是否有可能实施一种方法来;猜测;此日期格式基于数组中的信息?,javascript,date-format,Javascript,Date Format,在JavaScript语言中 我有一个数组。。。也许看起来像这样 var all_date = new Array( "11/12/2009", "31/12/2010", "29/12/2011", "17/09/2011" ); 是否有可能实现一种基于数组中的信息“猜测”此日期格式的方法,并向用户建议最可能的日期格式?比如。。。DD/MM/YYYY当然,如果数据恰好包含大于12的日值,并且有四位数的年份(正如您引用的数据),那么您不是在猜测,您可以确定您的格式是正确的 但是,如果数据中的所

在JavaScript语言中

我有一个数组。。。也许看起来像这样

var all_date = new Array( "11/12/2009", "31/12/2010", "29/12/2011", "17/09/2011" );

是否有可能实现一种基于数组中的信息“猜测”此日期格式的方法,并向用户建议最可能的日期格式?比如。。。DD/MM/YYYY

当然,如果数据恰好包含大于12的日值,并且有四位数的年份(正如您引用的数据),那么您不是在猜测,您可以确定您的格式是正确的

但是,如果数据中的所有日值恰好为12或更低,则无法确定数据是采用美国MM/DD/YYYY格式还是更常见的DD/MM/YYYY格式


因此,在一般情况下,您无法可靠地推断格式。数据源应提供格式信息(在文档等中),最好使用不太含糊的格式,如YYYY/MM/DD。

在某种程度上,是的,您可以。一个明显的方法是使用正则表达式。假设您有一个日期,比如2020-10-31,您可以根据RegExp对其进行测试,提取令牌(年、月和月日),一旦标识了令牌,就可以将其转换为相应的格式令牌(YYYY、MM和DD)

现在考虑ReGEXP,<代码>/^(\d { 4 })-(0(1-9] 1)[0-2)-(0 [1-9],[1-2] \d 3 [0-1 ])$ /< /代码>;简单地说,它匹配形式的字符串(4位数字的年)-(月,可能)-(月的某一天,可能);括号暗示。这里的捕获组基本上会为您取出代币(年、月和月中日部分)。试试下面的代码片段


console.log('2020-10-31'.match(/^(\d{4})-(0[1-9]| 1[0-2])-(0[1-9]|[1-2]\d | 3[0-1])$/很合理,也许有一天有人会产生库来解决这个问题。