Moment.js "Недействительная дата"
Я просто попытался сделать ввод текста с отформатированной датой. Он отлично работает в Google Chrome, но когда я запускаю его в Mozilla Firefox (26.0), он говорит: Invalid date
.
Вы можете видеть и запускать мой пример в обоих браузерах и, надеюсь, понять проблему.
Код JS:
$( "#h_reg_date" ).datepicker();
$("#h_reg_date").datepicker("option", "dateFormat", "yy-M-dd");
$("#save_data").on("click", function(){
var reg_date = $("#h_reg_date").val();
console.log(reg_date);
reg_date = moment(reg_date).format("YYYY/MM/DD");
console.log(reg_date);
return;
});
HTML:
<input type="text" id="h_reg_date"class="abs" style="top:135px; left:150px;" size="10" readonly >
<input type="button" id="save_data" class="abs" style="top:370px; left:-200px;" value="Add Data">
Есть ли какое-либо решение этой проблемы?
Ответы
Ответ 1
Измените формат datepicker
на:
$("#h_reg_date").datepicker("option", "dateFormat", "yy/mm/dd");
JS Fiddle: http://jsfiddle.net/MMm86/1/
Чтобы указать дату в запрошенном формате, используйте:
$( "#h_reg_date" ).datepicker();
$("#h_reg_date").datepicker("option", "dateFormat", "yy/M/dd");
$("#save_data").on("click", function(){
var reg_date = $("#h_reg_date").val();
console.log(reg_date);
reg_date = moment(reg_date).format("YYYY/MMM/DD");
console.log(reg_date);
return;
});
JS Fiddle: http://jsfiddle.net/MMm86/2/
Ответ 2
Предположим, что ваша дата находится в формате "DD-MM-YYYY", и вы хотите отобразить ее в формате DD-MMM, тогда вы можете сделать это, сначала сообщив функцию момента, которая отформатирует вашу дату на данный момент, а затем попросит ее преобразовать ее в требуемый формат. Ниже приведен пример:
var taskDueDate = moment(dueDate, 'DD-MM-YYYY').format('DD-MMM');
Таким образом вы можете конвертировать дату в любом формате.
Ответ 3
Кажется, что это известная проблема, за свои документы.
http://momentjs.com/docs/#/parsing/string/
Похоже, они предлагают передать в строке времени и формате.