Safari浏览器中的格式化日期不正确

时间:2015-03-23 10:40:02

标签: javascript google-chrome date safari

我正在尝试在Safari浏览器中运行以下代码,但日期未在警报框中正确显示。它在Google Chrome中显示正确的日期。在safari中它显示“2015年3月23日星期二”,在Chrome中显示“2015年3月23日”。

有谁知道为什么会这样?

function getFormattedDate(input){
var pattern=/(.*?)\/(.*?)\/(.*?)$/;
var result = input.replace(pattern,function(match,p1,p2,p3){
    var months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Dec'];
    return (p2<10?"0"+p2:p2)+" "+months[(p1-1)]+" "+p3;
});
alert(result);
}
d1= new Date();
d2= d1.toLocaleDateString();
alert(d2);
getFormattedDate(d2);

1 个答案:

答案 0 :(得分:0)

请参阅此主题。

toLocaleDateString() is not returning dd/mm/yyyy format

你可以使用Niet the Dark Absol为你编写的答案中采用的代码。

function getFormattedDate(input){
var pattern=/(.*?)\/(.*?)\/(.*?)$/;
var result = input.replace(pattern,function(match,p1,p2,p3){
    var months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Dec'];
    return (p2<10?"0"+p2:p2)+" "+months[(p1-1)]+" "+p3;
});
alert(result);
}

var dateobj = new Date();
function pad(n) {return n < 10 ? "0"+n : n;}
var d2 = pad(dateobj.getMonth()+1)+"/"+pad(dateobj.getDate())+"/"+dateobj.getFullYear();
alert(d2);
getFormattedDate(d2);