JavaScript日期时区混乱

时间:2016-06-30 19:15:46

标签: javascript datetime datepicker bootstrap-datepicker

这是我的代码,我的问题是由我认为的浏览器造成的......

                    // TODO This will be replaced with an ajax call... testing:  T00:00:00-05:00  T00:00:00.000Z
                    sampleJson = '[{ "MinMonth": "01", "MinYear": "2005", "MaxMonth": "06", "MaxMYear": "2015" }]';
                    var myObject = sampleJson.substring(1, sampleJson.length - 1);
                    myObj = jQuery.parseJSON(myObject);
                    minDate = new Date(myObj.MinYear + "-" + myObj.MinMonth + "-01");
                    console.log(minDate);
                    //console.log(sampleJson);
                    $(".date-picker").datepicker({
                        format: "mm-yyyy",
                        //viewMode: "year",
                        minViewMode: "months",
                        defaultViewDate: "year",
                        startDate: minDate,
                        startView: "years",
                        todayBtn: false,
                        autoclose: true

                    });
                    console.log(minDate);

这是我在console.log()中得到的: 2004年12月31日星期五19:00:00 GMT-0500(东部标准时间)

另外,在第5行,我已经尝试过结束" -01");与" T00:00:00-05:00"声明(暗示)一个时区并且它有效,但我担心它不会为我(东部标准时间)时区以外的人工作......

我尝试将日期作为字符串传递,但DatePicker显然想要一个日期对象,因为如果我不使用初始化命令,它会将值默认为今天的日期#34;新日期(...)"在5号线。非常感谢任何帮助,我已经研究并找到了一些相关的帖子,但没有人帮助过。

另外,我试过把" Z"对于时区,我认为这会阻止浏览器减去时区的差异,但它仍然存在。

更新7/1/2016:

                    // TODO This will be replaced with an ajax call... testing:  T00:00:00-05:00  T00:00:00.000Z
                    sampleJson = '[{ "MinMonth": "01", "MinYear": "2005", "MaxMonth": "06", "MaxMYear": "2015" }]';
                    var myObject = sampleJson.substring(1, sampleJson.length - 1);
                    myObj = jQuery.parseJSON(myObject);
                    minDate = new Date(Date.UTC(myObj.MinYear, (myObj.MinMonth - 1)));
                    console.log(minDate);
                    //console.log(sampleJson);
                    $(".date-picker").datepicker({
                        format: "mm-yyyy",
                        //viewMode: "year",
                        minViewMode: "months",
                        defaultViewDate: "year",
                        startDate: minDate,
                        startView: "years",
                        todayBtn: false,
                        autoclose: true

                    });
                    console.log(minDate);

我已经尝试过将UTC功能简单地从1970年或者其他任何方面减去,并且从那天起它仍然减去-5小时......浏览器显然想要赢得这场战斗......

0 个答案:

没有答案