Функция 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:
чтобы 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>