moment.js在firefox中提供无效日期,但在chrome中没有

chr*_*con 5 javascript firefox jquery google-chrome momentjs

我对moment.js有一个奇怪的问题.我编写了一个函数来将时间从utc转换为德语时间格式,并且所有内容似乎都能正常工作.但现在我用firefox尝试了它,在这里我的日期无效.

moment.locale("de");

$('#from').datepicker({
    format: "DD. MMMM YYYY"
});

$('#from').on('change',function() {

    var a = moment($('#from').val(), "DD. MMMM YYYY").format("LLLL");
    var b = moment(a).add(7,'days');


    var localTime  = moment.utc(b).toDate();
    localTime = moment(localTime).format('DD. MMMM YYYY');


    $('#to').val(localTime);

});



$('#to').datepicker({
    format:'DD.MMMM YYYY'
});



$('#sendbtn').on('click',function(){

    /...

    var from = moment(fromfield.value).format();

    var to = moment(tofield.value).format();


    /...

    $('#calendar').fullCalendar( 'gotoDate', from );
    getEventDate(from,to,persons.value);


    }

});

 function getEventDate(start,end,people) {

     var Calendar = $('#calendar');
     Calendar.fullCalendar();
     var Event = {
       title:"Your stay for "+people+" people",
       allDay: true,
       start: start,
       end: end

     };
      filljson(start,end,people);

      Calendar.fullCalendar( 'renderEvent', Event );


}

   / ...
Run Code Online (Sandbox Code Playgroud)

我已经看到了这个答案,但无论如何也无法让它发挥作用.有人可以帮我吗?

nra*_*itz 11

从你的问题不清楚代码的哪一部分抛出错误,但可能的罪魁祸首是Moment.js只是代表Date.parse非ISO-8601字符串:https://github.com/moment/moment/issues/ 1407

因此,假设您使用Moment来解析用户输入或未知格式的其他字段,或者解析非ISO-8601的格式,您将必须明确指定格式以获得有保证的跨浏览器行为.否则你会潜入跨浏览器的迷宫Date.parse- 唯一一致的格式是ISO-8601.