Функция Javascript для преобразования даты гггг / мм / дд в дд / мм / гг - PullRequest
10 голосов
/ 18 января 2010

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

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

Спасибо.

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

Ответы [ 6 ]

17 голосов
/ 18 января 2010

Если вы уверены, что дата, полученная с сервера, действительна, простой 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"
14 голосов
/ 18 января 2010

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

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"
}
2 голосов
/ 18 января 2010

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

1 голос
/ 17 декабря 2018

Используйте любую из этих функций 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"
1 голос
/ 18 января 2010

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

http://www.datejs.com

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

0 голосов
/ 26 сентября 2018

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

Объект 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...