Я получаю дату от PHP
в формате ymd
. Я использую Moment.js
, чтобы преобразовать его в нужный мне формат, но он не работает должным образом.
Так, например, сегодняшняя дата выглядит как 190528
, но после преобразования в YYYY-MM-DD
она становится 190528-1-1
вместо 2019-05-28
.
Это первый формат даты, который вызывает проблему, или есть способ преодолеть это и преобразовать его так, как мне нужно?
Вы можете передать формат текущей даты в качестве второго параметра момента.
console.info(moment("190528", "YYMMDD").format("YYYY-MM-DD"));
<script src = "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
Здесь документы.
Сначала разберите дату, передав формат как «ГГММДД»
moment("190528", "YYMMDD").format("YYYY-MM-DD");
Это даст правильный результат.
Для этого не нужно загружать момент.
Вы можете разбить строку на части лет, месяцев и дат. Отформатируйте год и верните объединенную строку...
function formatDate(date) {
var _d = date.match(/.{1,2}/g);
_d[0] = "20" + _d[0];
return _d.join("-");
}
var d = "190528";
console.info(formatDate(d));
Вам нужно указать момент, в каком формате находится ваша строка даты:
console.info(moment("190528", "YYMMDD"))
<script src = "https://unpkg.com/[email protected]/moment.js"></script>
Как вы его конвертируете? С Moment вы можете передать строку формата при анализе, чтобы
moment('190528', 'YYMMDD')
анализировать ее так, как вы хотите. Затем вам нужно будет передать строку формата, когда вы хотите ее отформатировать.