от 1_
to : 2011-05-19
Мне нужно, чтобы он вызывал ошибку, когда обнаруживает, что он не может быть реальным, например 5/40/2011
и т. д. Существуют ли какие-либо библиотеки, которые делают это хорошо?
от 1_
to : 2011-05-19
Мне нужно, чтобы он вызывал ошибку, когда обнаруживает, что он не может быть реальным, например 5/40/2011
и т. д. Существуют ли какие-либо библиотеки, которые делают это хорошо?
Как насчет Datejs — библиотеки дат с открытым исходным кодом? Конкретно:
http://code.google.com/p/datejs/wiki/APIDocumentation#parseExact
Date.parseExact("10/15/2004", "M/d/yyyy"); // The Date of 15-Oct-2004
Date.parse("15-Oct-2004", "d-MMM-yyyy"); // The Date of 15-Oct-2004
Date.parse("2004.10.15", "yyyy.MM.dd"); // The Date of 15-Oct-2004
Date.parseExact("10/15/2004", ["M/d/yyyy", "MMMM d, yyyy"]); // The Date of 15-Oct-2004
Возвращаемое значение {Date} Объект Date или null, если строку нельзя преобразовать в Date.
or
http://code.google.com/p/datejs/wiki/APIDocumentation#validateDay
Date.validateDay(15, 2007, 1); // true, 15-Feb-2007
Date.validateDay(31, 2007, 10); // false, throws RangeError exception
Возвращаемое значение {Boolean} true, если находится в пределах диапазона, иначе false.
возможно, это не лучшее решение, но вы можете попробовать простой способ, например:
var from="5/19/2011";
var temp = from.split("/");
var to = temp[2] + "-" + temp[0] + "-" + temp[1];
Будь проще:
[изменить] правильно, вы тоже хотели чек, поэтому добавили fn chkDat
:
function zeroPad(n){
return (parseInt(n,10)<10 ? '0' : '') + n;
}
var usdat = '5/19/2011'.split('/')
,eudat = [usdat[2],zeroPad(usdat[0]),zeroPad(usdat[1])];
alert(chkDat(usdat,eudat); //=> true
alert(eudat.join('-')); //=> '2011-05-19'
function chkDat(orig,eu){
var eu = new Date(eu.join('/'));
return eu.getMonth()+1 === parseInt(orig[0],10)
&& eu.getDate() === parseInt(orig[1],10)
&& eu.getFullYear() === parseInt(orig[2],10)
;
}
Обратите внимание, формат даты, который вам нужен, называется Календарная дата (ISO 8601).
2011-05-19
формат даты? - person rsk82   schedule 14.08.2011