Я пытаюсь создать функцию на javascript, чтобы вывести дату из моей базы данных в формате (yyyy-mm-dd) и отобразить ее на странице как (dd/mm/yy).
Буду признателен за любую помощь.
Спасибо.
PD: Дайте мне знать, если вам нужно больше разъяснений.
Я пытаюсь создать функцию на javascript, чтобы вывести дату из моей базы данных в формате (yyyy-mm-dd) и отобразить ее на странице как (dd/mm/yy).
Буду признателен за любую помощь.
Спасибо.
PD: Дайте мне знать, если вам нужно больше разъяснений.
Если вы уверены, что дата, поступающая с сервера, действительна, простой 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"
Самый простой способ предположить, что вы не беспокоитесь о динамической функции:
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
Примеры также есть
Вы также можете посмотреть на использование date.js:
Для будущего применения вашего приложения вы можете захотеть вернуть время в формате UTC и формат с помощью JavaScript. Это позволит вам поддерживать различные форматы для разных стран (в США, мы больше всего знакомы с DD-MM-YYYY или экземпляром), а также с часовыми поясами.
Используйте любую из этих функций 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"
Это простой случай, но все используют строковые методы! Это немного варварски :-)
Объект 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>
Вы также можете использовать литералы деструктуризации и шаблонов, если уверены, что всегда будете получать дату в 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}');