Проверьте, что дата больше 0001-01-01 в Moment.js
У меня есть функция, которая форматирует дату, используя,
export function FormatDate(date: string) {
if (date != null) {
return moment.utc(date).format('DD MMM YYYY');
}
else
return "";
}
Но проблема в том, что нулевые даты принимаются как "0001-01-01" (минимальное значение DateTime). как я могу проверить это с моментом JS?
Не могу найти прямой способ сделать это. Следующий код работает, но это некрасиво,
new moment("0001-01-01").format("DD MMM YYYY") == moment.utc(date).format("DD MMM YYYY")
"Дата", которую я получаю, находится в формате "/ Дата (-62135596800000)/".
Я старался, moment.utc(date).isAfter("0001-01-01")
и это не работает, возвращает true.
Какой лучший способ проверить сериализованную дату не является минимальной датой?
2 ответа
Решение
Я думаю, что вы упускаете часть часового пояса при сравнении дат. Пожалуйста, посмотрите код ниже и дайте мне знать, если это то, что требуется:
var minDate = moment.utc("0001-01-01"); // minimum value as per UTC
var receiveDate = moment("/Date(-62135596800000)/"); // replace with variable
if(moment.utc(receiveDate).isAfter(minDate)){
alert('yebo !');
}
Если ваша дата в формате С #, вы можете сделать это
var dateObject = "/Date(-62135596800000)/";
var ScriptDate = new Date(parseInt(dateObject.substr(6)));
var minDate = moment.utc("0001-01-01");
if(moment.utc(ScriptDate).isAfter(minDate)){
console.log("Correct date");
}else{
console.log("Incorrect date");
}