验证英国格式的日期
Validate Uk formatted date
我正在尝试使用以下代码验证英国日期:
function ukdate(d) {
var p = new Date(d.split('/')[2], d.split('/')[1] -1, d.split('/')[0]);
if(p.toString() !== 'Invalid Date') {
return p;
}
}
http://jsfiddle.net/GE3xU/1/所以如果我尝试ukdate('31/12/1981')它会正确返回"The Dec 31 1981"。但是,如果我尝试ukdate('12/31/1981')它返回"Tue Jul 12 1983"。
为什么会发生这种情况?我希望第二个测试返回无效日期,因为31不是一个有效的月份。
JavaScript正在为您转换日期。
在简单的例子中,您可以通过询问下一个月的第0天来获得给定月份的最后一天。同样,将"32 of August"更正为9月1日。
月份的工作原理类似。某一年的第13个月就是下一年的第1个月。一年的第0个月是前一年的12月。
31 % 12 = 7
表示七月,floor(31/12) = 2
表示年份向前移动两位。
这是JavaScript的预期行为。
我可以让你对<input type="date" />
感兴趣吗?它使用用户计算机上定义的任何格式(即。它是"区域感知"的),这对于用户体验来说已经很好了。最重要的是,支持浏览器将呈现一个日历日期选择器,这在手机上也特别有用。在内部,日期是"标准"的YYYY-mm-dd格式。
将月值除以12并与年份相加,然后将余数用作实际月值。
参见规范
设ym为y + floor(m/12)。
设mn为m模12
相关文章:
- Javascript日期格式类似于ISO,但本地
- NodeJS日期格式不起作用
- 将客户端特定的日期格式返回到服务器MVC4
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 将Javascript日期转换为ASP.NET日期格式
- 在达到状态之前在Redux Reducer中设置日期格式
- 如何从Angularjs中的新日期获取日期格式
- 如何使用jquery更改为所需的日期格式
- keith wood日期选择器日期格式和语言
- Dygraph更改日期格式
- 确定Twig(或JavaScript)中的国际日期格式,以便在其他地方使用
- javascript和jquery日期格式转换
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 在Karma Jasmine单元测试用例中检查日期格式
- 使用不同的日期格式和区域设置创建时刻
- 更改日期选择器上的日期格式
- 以日期计算的天数更改日期格式
- 带有onchange的日期格式
- 如何从区域设置获取日期格式