Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 日期格式YYYY-MM-DD在Safari中不起作用_Javascript_Date_Safari_Format - Fatal编程技术网

Javascript 日期格式YYYY-MM-DD在Safari中不起作用

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','

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','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。