Функция Javascript для преобразования даты yyyy/mm/dd в dd/mm/yy

Я пытаюсь создать функцию на javascript, чтобы вывести дату из моей базы данных в формате (yyyy-mm-dd) и отобразить ее на странице как (dd/mm/yy).

Буду признателен за любую помощь.

Спасибо.

PD: Дайте мне знать, если вам нужно больше разъяснений.

Ответ 1

Если вы уверены, что дата, поступающая с сервера, действительна, простой RegExp может помочь вам изменить формат:

function formatDate (input) {
  var datePart = input.match(/\d+/g),
  year = datePart[0].substring(2), // get only two digits
  month = datePart[1], day = datePart[2];

  return day+'/'+month+'/'+year;
}

formatDate ('2010/01/18'); // "18/01/10"

Ответ 2

Самый простой способ предположить, что вы не беспокоитесь о динамической функции:

function reformatDate(dateStr)
{
  dArr = dateStr.split("-");  // ex input "2010-01-18"
  return dArr[2]+ "/" +dArr[1]+ "/" +dArr[0].substring(2); //ex out: "18/01/10"
}

Ответ 4

Вы также можете посмотреть на использование date.js:

http://www.datejs.com

Для будущего применения вашего приложения вы можете захотеть вернуть время в формате UTC и формат с помощью JavaScript. Это позволит вам поддерживать различные форматы для разных стран (в США, мы больше всего знакомы с DD-MM-YYYY или экземпляром), а также с часовыми поясами.

Ответ 5

Используйте любую из этих функций js для преобразования даты гггг/мм/дд в дд/мм/гг

Тип 1

function ChangeFormateDate(oldDate){
   var p = dateString.split(/\D/g)
   return [p[2],p[1],p[0] ].join("/")
}

Тип 2

function ChangeFormateDate(oldDate)
{
   return oldDate.toString().split("/").reverse().join("/");
}

Вы можете вызвать эти функции с помощью:

ChangeFormateDate("2018/12/17") //"17/12/2018"

Ответ 6

Это простой случай, но все используют строковые методы! Это немного варварски :-)

Объект Date полностью настроен для этого и поможет вам намного дальше, когда вы освоите его. Ваша дата не имеет часового пояса, поэтому я предлагаю вам ввести UTC как при входе, так и при выходе. Язык en-GB использует dd-mm, но вы должны иметь в виду, что англоязычные пользователи делятся на середину формата даты, и каждая половина находит другой формат полностью запутанным. Вы должны действительно постараться, чтобы ваш числовой формат даты адаптировался к предпочтениям пользователя, тем более что это просто!

Так...

new Vue({
  el: '#vueRoot',
  data: {kennedy: '1963-11-22'},
  computed:{
    kennedyDdmm(){
      return new Date(this.kennedy + 'T00:00:00Z')
      .toLocaleDateString('en-GB',{timeZone:'UTC'})
    },
    kennedyAuto(){
      return new Date(this.kennedy + 'T00:00:00Z')
      .toLocaleDateString([],{timeZone:'UTC'})
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id='vueRoot'>
  <h1>in => {{kennedy}}</h1>
  <h1>dd-MM-yy => {{kennedyDdmm}}</h1>
  <h1>respect user prefs => {{kennedyAuto}}</h1>
</div>

Ответ 7

Вы также можете использовать литералы деструктуризации и шаблонов, если уверены, что всегда будете получать дату в YYYY-MM-DD.

const changeDateFormatTo = date => {
  const [yy, mm, dd] = date.split(/-/g);
  return '${dd}/${mm}/${yy}';
};

const formattedDate = changeDateFormatTo("2019-08-14");
console.log('Formatted date is: ${formattedDate}');