Im исследуя moment.js с Datatables, и он действительно хорош для отображения даты в формате, который я хочу, но есть проблема, которая у меня есть с данными, которые я конвертирую. Если дата недействительна, она показывает сообщение INVALID DATE, wihch - это хорошо, но не то, что я действительно хочу. Возможно ли, чтобы показать сообщение "Недействительная дата", показать, что там было изначально? Например, если это не дата, я хочу посмотреть, что это такое, а не это сообщение.
Спасибо!
EDIT: Спасибо за помощь, ребята! Я сделал это для datatable "aoColumns":
{ "mData": "APE",
"render": function(mData){
if(mData != null){
if(moment(mData).format("DD/MM/YYYY")== 'Invalid date')
{
return mData;
}
else
{
return moment(mData).format("DD/MM/YYYY");
}
}
},
sDefaultContent: ''},
В зависимости от того, как вы реализовали Moment.js, вы могли просто проверить возвращаемое значение с момента? Например
var prettyDate = moment()...;
if(prettyDate != 'Invalid date') {
// set your date
}
moment.updateLocale(moment.locale(), { invalidDate: "ur msg or NaN/null" });
var dateStr = "aw 2017-06- awd 09 10:05:21.0";
//var dateStr = "a2017-06-09 10:05:21.0";
if(moment(dateStr, moment.ISO_8601).isValid()){
alert("Valid Date: " + moment(dateStr).format('MM/DD/YYYY'));
}
else {
alert("Invalid Date: " +dateStr);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
Попробуйте создать свою собственную функцию, когда вы проверяете, действительна ли дата или нет, см. Подтверждение времени, а если оно недействительно, верните исходные данные для сообщения.
Обновление: см. Этот пост для дополнительного объяснения фрагмента кода
moment(String, String)
чтобы избежать этого, как показано здесь . (Может быть, вы также можете обновить текущую версию до последней)