2017-02-24 63 views
0
var getFormattedDateText = function (dateString) { 
     var date = new Date(dateString); 
     var hours, am_pm, minutes, time; 

//Code for formatting the time starts 
     hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours(); 
     am_pm = date.getHours() >= 12 ? "PM" : "AM"; 
     hours = hours < 10 ? "0" + hours : hours; 
     minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); 
     time = hours + ":" + minutes + " " + am_pm; 
//Code for formatting the time ends 

     var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"]; 
     console.log(date.getHours() + "=" + date.getMinutes()); 

     return (monthNames[date.getMonth()] + ' ' + date.getDate() +' at ' + time+' Local Time'); 

    }; 

這裏datestring是2017-03-02T09不同的值:00:00,.getDate()和.getMinutes返回在鉻和Firefox

但在Chrome它給date.gethours ()= 14date.getMinutes = 30

而在Firefox date.gethours()= 09date.getMinutes = 00

+0

[在Chrome中不正確的Javascript日期VS火狐(可能的重複http://stackoverflow.com/questions/17334602/incorrect-javascript-date-in-chrome -vs-firefox) –

回答

0

我認爲它與你注入日期到你的函數的方式有關。我做了以下,並在Chrome和Firefox中得到了相同的結果:

getFormattedDateText('2017-03-02 09:00:00'); 

所以我從dateString中刪除了'T'。瀏覽器都以不同的方式解釋它。當我刪除我的瀏覽器中執行以下操作:無時區

console.log(date.getHours() + "=" + date.getMinutes()); 
logged - '9=0' 
-1

日期由鉻&火狐不同的處理。

例如添加一個時區到您的datestring

getFormattedDateText('2017-03-02T09:00:00Z'); // UTC timezone 

入住這Incorrect Javascript Date in Chrome vs Firefox

+0

而不是提供鏈接,嘗試複製粘貼這裏的內容 –

0

你定的日期格式不正確。正確的日期字符串將在Chrome和Firefox中返回相同的值。

檢查link的正確格式。

0

這一修改解決了我的問題

var date = new Date(dateString + 'Z');