Дата переформатирования перед отправкой формы - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть форма с полем даты и календаря. Когда я использую это, я ввожу дату как dd/mm/yyyy. Это работает.

Я хочу сохранить дату как yyyymmdd. Есть ли способ использовать javascript для переформатирования даты? Например, я нажимаю «отправить», он переформатирует дату, а затем отправляет и записывает переформатированную дату в базу данных?

Может быть, есть лучший подход? например, используя скрытое поле ввода, которое каким-то образом имеет правильно отформатированную версию даты?

Ответы [ 3 ]

1 голос
/ 20 февраля 2020

Как насчет этого?

('20/02/2020').split('/').reverse().join('')

Это ДОЛЖНО РАБОТАТЬ, основываясь на информации, которую вы предоставили. Если ваш DatePicker не возвращает значение как-то еще или в каком-то другом формате. Для этого вам нужно будет перехватить отправленную форму вашим собственным обработчиком кликов и проверить значение.

1 голос
/ 20 февраля 2020

function submit(){
var date  = document.getElementById('datefield').value;
var e = date;
var output = e.replace(/\-/g,"");
document.getElementById('output').innerHTML = output;
}
<input id="datefield" data-date-format="YYYY MM DD" type="date">
<button onclick="submit()">format!</button>
<div id="output"></div>
0 голосов
/ 20 февраля 2020

Если вы загрузите значение как объект Date, вы можете отформатировать его так, как вам нравится. Однако, пожалуйста, подумайте об использовании библиотеки, которая уже решает эту проблему для вас, например moment. js.

function formatDate() {
  const value = document.getElementById("date-input").value;
  const date = new Date(value);
  
  const year = date.getFullYear() + "";
  let month = date.getMonth() + 1 + "";
  let day = date.getDate() + "";
  
  if (day.length == 1) day = "0" + day;
  if (month.length == 1) month = "0" + month;
  
  const formattedDate = year + "/" + month + "/" + day;
  
  document.getElementById("date-output").innerHTML = formattedDate;
}
<input id="date-input" type="date">
<button onclick="formatDate()">format!</button>
<div id="date-output"></div>
...