我正在尝试创建一个 JavaScript 函数,以将数据库中的日期格式 (yyyy-mm-dd) 提取出来,并将其显示在页面上的格式为 (dd/mm/yy)。
我将非常感激任何帮助。
谢谢。
附言:如果需要更多解释,请告诉我。
我正在尝试创建一个 JavaScript 函数,以将数据库中的日期格式 (yyyy-mm-dd) 提取出来,并将其显示在页面上的格式为 (dd/mm/yy)。
我将非常感激任何帮助。
谢谢。
附言:如果需要更多解释,请告诉我。
如果你确信从服务器获取的日期是有效的,一个简单的 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"
用一行代码实现:
date.split("-").reverse().join("-");
// 2021-09-16 => 16-09-2021
假设您不介意函数的动态性,最简单的方法是:
function reformatDate(dateStr)
{
var dArr = dateStr.split("-"); // ex input: "2010-01-18"
return dArr[2]+ "/" +dArr[1]+ "/" +dArr[0].substring(2); //ex output: "18/01/10"
}
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.js:
为了使您的应用程序具有未来性,您可能希望返回UTC时间戳并使用JavaScript格式化。这将允许您支持不同国家的不同格式(例如,在美国,我们最熟悉的是DD-MM-YYYY)以及时区。
试试这个:
function convertDate(dateString){
var p = dateString.split(/\D/g)
return [p[2],p[1],p[0] ].join("-")
}
convertDate("2001-9-11")//"11-9-2001"
如果您确定始终会收到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}`);
这是一个简单的案例,但每个人都在使用字符串方法!这有点野蛮 :-)
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>
使用toLocaleDateString是将任何日期格式转换为最佳方式:
const date: Date = new Date('2023-04-11');
return date.toLocaleDateString('en-US', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
timeZone: 'UTC'
})