簡體   English   中英

formatDate JavaScript函數僅在Chrome中有效

[英]formatDate JavaScript function only works in Chrome

我有一個JavaScript函數,該函數可以在Chrome中正常運行,但不能在其他瀏覽器(例如Firefox或Safari)中運行:

function formatDate(date){
    var result =  date.getFullYear() + "-" + 
    (((date.getMonth()+1)<10?'0':'') + (date.getMonth()+1)) + "-" + 
    date.getDate() + " " + date.getHours() + ":" + 
    (date.getMinutes()<10?'0':'') + date.getMinutes() + ":00";

    console.log("formatDate(): " + result);
    return result;
}

這是調用formatDate函數的地方:

var duration = 1;
var startString = $("#inputDatetime").val();
var startObject = new Date(startString);

var endObject = startObject;
endObject.setHours(startObject.getHours() + duration);
var endString = formatDate(endObject);

setCookie("start", startString, 3600*60*24*30);
setCookie("end", endString, 3600*60*24*30);

Chrome輸出:

formatDate(): 2013-11-18 17:00:00

Firefox輸出:

formatDate(): NaN-NaN-NaN NaN:NaN:00

首選輸出將類似於2013-11-21 16:00:00

為了獲得所有瀏覽器的支持,我必須更改什么?

問題是只有Chrome支持new Date(startDate) ;

我的解決方案使用moment.js

var duration = 1;
var startString = $("#inputDatetime").val();

var endObject = moment(startString).add('hours',duration);
var endString = moment(endObject).format("YYYY-MM-DD HH:mm");

setCookie("start", startString, 3600*60*24*30);
setCookie("end", endString, 3600*60*24*30);

只需使用

var startObject = new Date(startString.replace(/\-/g,'\/'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM