【发布时间】:2013-11-23 12:35:34
【问题描述】:
只是为了提供一些关于我正在尝试做的事情的背景:
- 我在美国的美国机器上
- 我正在使用 chrome
- 我将控制面板中的机器设置 -> 区域和语言更改为“英语(英国)”
- 在 Chrome -> 设置 -> 语言和输入设置下,我删除了“英语(美国)”并添加了“英语(英国)”
我有一个带有一个输入框的 html 页面,我想验证输入框中的文本是否是基于用户客户端区域设置的有效日期。所以美国用户可以输入“11/20/2013”,英国用户可以输入“20/11/2013”。
<input type="text" id="dt" />
<input type="button" id="validate" value="validate" />
<script>
$(document).ready(function() {
$('#validate').click( function() {
if (isNaN(Date.parse($('#dt').val())) == true)
alert('date is invalid!');
else
alert('valid date');
});
});
</script>
似乎 Date.parse() 总是期待美国格式 (DD/MM/YYYY)。知道如何根据客户端语言环境进行验证吗?
【问题讨论】:
-
我认为这个答案会对你有所帮助:stackoverflow.com/a/2587398/693275
-
你应该告诉用户日期应该是什么格式,因为有很多变化,你将有相当大的任务来尝试验证所有的日期变化,这会让用户感到困惑它不起作用,他们也无法轻易找到日期格式。
-
adeneo 我明白你在说什么,但我不想强迫用户输入来自不同地区的格式。为什么英国用户要输入美国格式,美国用户为什么要输入英国格式?
-
我自己是很多网站的用户,我并不关心日期或月份是否在前,只要我知道日期应该采用什么格式。如果我必须猜猜日期格式,直到我猜对了,我可能会离开并找到另一个网站,有数十亿个。
标签: javascript jquery date