Функция Javascript для преобразования даты гггг/ММ/ДД в ДД / ММ/гг

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

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

спасибо.

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

5 ответов


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

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"

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

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"
}

используйте функции getDateFromFormat () и formatDate() из этого источника: http://mattkruse.com/javascript/date/source.html
примеры тоже есть


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

http://www.datejs.com

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


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

объект 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>