我正在尝试在javascript上创建一个函数,以格式(yyyy-mm-dd)从我的数据库中显示日期,并在页面上显示为(dd / mm / yy)。
我将不胜感激。
感谢。
PD:如果您需要更多说明,请告诉我。
答案 0 :(得分:14)
如果您确定来自服务器的日期有效,可以使用简单的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"
答案 1 :(得分:13)
最简单的方法,假设你不关心动态函数:
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 :(得分:2)
使用此源中的函数getDateFromFormat()和formatDate():
http://mattkruse.com/javascript/date/source.html
例子也在那里
答案 3 :(得分:1)
您可能还想查看使用date.js:
为了保护您的应用程序,您可能希望以UTC时间戳返回时间并使用JavaScript格式化。这将允许您支持不同国家/地区的不同格式(在美国,我们最熟悉DD-MM-YYYY或实例)以及时区。
答案 4 :(得分:1)
使用此js函数中的任何一个将日期yyyy / mm / dd转换为dd / mm / yy
类型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"
答案 5 :(得分:0)
这是一个简单的例子,但是每个人都在使用字符串方法!这有点野蛮:-)
所有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>
答案 6 :(得分:0)
如果您确定总是收到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}`);
答案 7 :(得分:0)
尝试一下:
function convertDate(dateString){
var p = dateString.split(/\D/g)
return [p[2],p[1],p[0] ].join("-")
}
convertDate("2001-9-11")//"11-9-2001"