Javascript 日期格式YYYY-MM-DD在Safari中不起作用
Safari无法识别日期格式2012-01-03(即2012年1月3日),我有这个问题。我在一个数组中有日期,然后我想将它们转换成这种格式-1月3日星期二 在Chrome中工作,但是Safari抛出了未定义的NaN 下面是一些代码Javascript 日期格式YYYY-MM-DD在Safari中不起作用,javascript,date,safari,format,Javascript,Date,Safari,Format,Safari无法识别日期格式2012-01-03(即2012年1月3日),我有这个问题。我在一个数组中有日期,然后我想将它们转换成这种格式-1月3日星期二 在Chrome中工作,但是Safari抛出了未定义的NaN 下面是一些代码 (function() { var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'], months = ['Jan','Feb','
(function() {
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec'];
Date.prototype.getDayName = function() {
return days[this.getDay()];
};
Date.prototype.getMonthName = function() {
return months[this.getMonth()];
};
})();
var issues = ['2012-01-03', '2012-01-02', '2012-01-01', '2011-12-31'];
for (var i = 0; i < issues.length; i++) {
var d = new Date(issues[i]);
var date = d.getDate(),
weekday = d.getDayName(),
month = d.getMonthName();
day = weekday + ' ' + month + ' ' + date;
$('.datepicker').find('ul').append('<li class="issue_' + i + '">' + day + '</li>');
}
(函数(){
var days=[“星期日”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”],
月份=[‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’、‘七月’、‘八月’、‘九月’、‘十月’、‘十一月’、‘十二月’];
Date.prototype.getDayName=函数(){
返回天数[this.getDay()];
};
Date.prototype.getMonthName=函数(){
返回月份[this.getMonth()];
};
})();
风险值问题=['2012-01-03'、'2012-01-02'、'2012-01-01'、'2011-12-31'];
对于(变量i=0;i“+day+”);
}
我只需要它来为Safari/Mobile Safari工作,所以我不喜欢使用任何js库。在各种浏览器中进行日期解析是出了名的不一致和挑剔。我一直用Datejs(http://www.datejs.com/),一个很好的小js库,它扩展了内置的日期对象。检查它。简单调试会显示错误:
var d = new Date(issues[i]);
console.log(d);
它不喜欢日期格式。您可以这样更改它:
var issues = ['01/03/2012', '01/02/2012', '01/01/2011', '12/31/2011'];
或者,您可以进行拆分,并以所有浏览器支持的格式进行拆分
var dateParts = issues[i].split(/-/);
var d = new Date(dateParts[0],parseInt( dateParts[1], 10) -1,dateParts[2]);
我需要做的太多了,我只是专门针对safari/mobile safari。