我在JS中有这个功能,它非常奇怪,因为它适用于很多日期,但有一个不是..
我有两个输入并且jquery复制第二个中的第一个如果第二个是次要的或者是null,然后如果我在第一个中添加另一个更大的日期,则第二个日期在第一个日期变为相同。
但我有一个案例,第一个输入是01/05/2013,第二个输入是2013年5月31日,如果我将第一个更改为2013年6月1日,则第二个应该在同一天更改,但是不要这样做..
如果用firebug我测试它和这个功能
obtenerFecha(fIni) > obtenerFecha(fFin) // obtenerFecha(01/06/2013) > obtenerFecha(31/05/2013)
返回false,它是真的!
如果有人可以帮助我,这是我的代码..
function copiarFecha(inicio,fin) {
var fIni = $("#" + inicio).val();
var fFin = $("#" + fin).val();
if ((fFin == "") || obtenerFecha(fIni) > obtenerFecha(fFin)) {
$("#" + fin).attr('value', fIni);
}
return true;
}
function obtenerFecha(strFecha) {
var df = strFecha.split("/");
if (isNaN(df[0]) || isNaN(df[1]) || isNaN(df[2]) || (df[0] > 31) || (df[1] > 12)) {
cargaMensaje("KO", "La fecha no es correcta,revísela.");
return false;
}
return new Date(df[2], df[1], df[0]);
感谢。
答案 0 :(得分:1)
Javascript中的月份日期在0-11而不是1-12范围内,因此您的新日期(2013,5,31)将转换为2013,05,01,即2013年5月1日。
答案 1 :(得分:1)
您需要从月份中减去1。 http://jsbin.com/eqozic/2/
<强>月强>
表示月份的整数值,从1月的0开始到12月的11。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date