Преобразование даты и времени в SQL для отображения в типе ввода datetime local

1

У меня есть строка datetime, которая извлекается из контроллера в следующем формате:

dd-MM-yyyy hh:mm:ss a
3/1/2018 4:02:00 PM

Я хочу показать его в виде ввода datetime-local. Поэтому мне нужно преобразовать дату и время в этот формат:

yyyy-MM-DDTHH:mm
2018-01-03T16:02

Сначала я пытаюсь использовать этот код, который даст результат как формат js, а затем использует функцию для ее форматирования. Но он ошибочно читает месяц как день и день как месяц. Это означает, что вывод будет отображаться следующим 2018-03-01T16:02.

var date_test = new Date("3/1/2018 4:02:00 PM".replace(/-/g,"/"));

Есть ли другой способ сделать это правильно?

  • 0
    Посмотрите на moment.js, который является отличным ресурсом для форматирования и манипулирования датами. momentjs.com
Теги:
datetime

2 ответа

1

Поскольку вы уже знаете формат

dd-MM-yyyy hh:mm:ss a
3/1/2018 4:02:00 PM

почему бы просто не разделить строку правильно (часть даты, а затем часть времени) и, наконец, просто создать новый объект даты с помощью yyyy, MM, dd и т.д.?

0

Использование moment.js. Большая библиотека:

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.7.0/moment.min.js"></script>
<script type="text/javascript">

var dateString = "3/1/2018 4:02:00 PM";
var currentDate = moment(dateString, "M/D/YYYY h:mm:ss a");
document.write(currentDate.format("YYYY-MM-DDTHH:mm"))
</script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню