日期格式自动从'dd/mm/yyy '& # 39; mm / dd / yyyy # 39;
date format automatically changed from 'dd/mm/yyyy' to 'mm/dd/yyyy'
所以我有这个javascript函数:
<script type="text/javascript">
function CompareDates(id)
{
var monName = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec");
var d = new Date(id);
var curr_date = d.getDate();
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
return (curr_date + " " + monName[curr_month] + " " + curr_year);
}
</script>
然后这个日历标签:
<p:calendar
id="testDate"
styleClass="calendar"
pattern="d MMM, yyyy"
maxlength="10"
onchange="$(this).val(CompareDates($(this).val()))"
onfocus="$(this).mask('99/99/9999');"
>
<p:watermark for="testDate" value="mm/dd/yyyy" />
</p:calendar>
并且由于某些未知的原因,文本框接受的默认日期格式是'mm/dd/yyyy'
例如,如果我输入"13-05-2014",那么它将返回一个错误,说明日期无效。
如果我输入"12-05-2014"那么它将返回"5 Dec, 2014"
我没有在任何地方声明任何日期格式,除了日期选择器,如上面所示,是'd MMM, yyyy'
在此发生之前,我尝试了许多不同类型的代码来验证日期,但是它都不起作用,所以我把它全部恢复到原始代码。
上次文本框接受的日期格式是'dd/mm/yyyy',它与我的javascript函数工作得很好,除了验证部分。
现在它仍然可以工作,只是日期格式更改为'mm/dd/yyyy'。
我确实尝试使用console.log来查找错误,但没有错误消息。
谁能告诉我这是怎么回事?
为什么日期格式自己改变了?
提前感谢!
当你这样做的时候:
var d = new Date(id);
你实际上是在调用date。解析,这在很大程度上依赖于实现。不幸的是,大多数浏览器的默认解析器都希望nn/nn/nnnn格式的字符串是月/日/年。
可以通过手动解析字符串来避免这种情况。如果字符串是d/m/y,则:
function parseDMY(s) {
var b = s.split(/'D/);
return new Date(b[2], --b[1], b[0]);
}
你还应该在屏幕上提供提示,告诉用户使用什么格式
相关文章:
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 在 JavaScript 中的个位数月份和日期之前添加零 (MM/DD/YYYY)
- 如何使用moment.js将秒转换为时间格式(YYYY:MM:DD HH:MM:ss)
- JavaScript 将长日期格式转换为 mm/dd/yyy
- Javascript Date 对象因格式而异:yyyy-mm-dd vs mm-dd-yyyy
- 使用 YYYY-MM-DD 值的比较构建 D3 时间线
- 在Javascript中用YYYY-mm-dd格式计算年龄
- 在 Angular 中将日期格式从 yyyy/MM/dd 更改为 MM/dd/yyyy
- javascript/jQuery date.toString(“yyyy-MM-dd HH:MM:ss”)在服务器之间
- Javascript正在删除DateTime[YYYY/MM/DD/HH:MM:SS:MM]中的毫秒
- 我们可以将控制器中的JSON数据(MM/DD/YYYY格式)与今天的's日期,并在数组中显示筛选列表
- 将YYYY/MM/DD转换为有效格式
- 使用new date()将数据与当前日期的MM/DD/YYYY格式的日期进行比较和筛选,同时从用户输入值中减去new d
- 用JavaScript将日期格式设置为MM/dd/yyyy
- 我想在日期中添加月份,并采用mm/dd/yy格式
- 使用RegEx在javascript中重写格式错误的日期yyyy-MM-d到yyyy-MM-dd
- 创建一个等于yyyy-mm-dd 00:00:00或23:59:59的时间戳
- 如何获得日期以 YYYY-mm-dd 为单位的年份差异
- 日期格式 yyyy-mm-dd 到 dd-M-yy