2014-10-30 58 views
1

我有以下代碼如何獲得的時間轉換爲所需時區

輸入:

var dateString = "10/30/2014 02:15 PM +00:00"; 
    var a = dateString .split(/[^0-9]/); 

    var dateVal=new Date(a[0],a[1]-1,a[2],a[3],a[4],a[5]); 
    var minutes=dateVal.setMinutes(dateVal.getMinutes() + 330); 
    var hours = dateVal.getHours(); 

    if(parseInt(hours,10) < 10){ 
     hours = "0"+hours; 
    } 
    var minutes = parseInt(dateVal.getMinutes()); 
    var ampm = parseInt(hours, 10) >= 12 ? 'PM' : 'AM'; 
    hours = parseInt(hours % 12); 
    hours = hours ? hours : 12; // the hour '0' should be '12' 
    minutes = minutes < 10 ? '0'+minutes : minutes;   
    strTime = hours + ':' + minutes + ' ' + ampm; 
    return strTime 

OUTPUT:

Actual: 7:45 AM 
Expected : 7:45 PM 

我能夠得到的時區轉換,但無法獲得理想的輸出,因爲我希望得到7:45 PM,但我總是得到相反的結果。 有些人可以幫我解決這個問題。

回答

1

問題是,當你轉換字符串時,過去的中午時間沒有被檢測到。嘗試搜索下午,如果發現增加您的小時十二:

var dateString = "10/30/2014 02:15 PM +00:00"; 
var a = dateString .split(/[^0-9]/); 

if(dateString.indexOf("PM") != -1) a[3] = Number(a[3]) + 12; 

var dateVal=new Date(a[0],a[1]-1,a[2],a[3],a[4],a[5]); 
相關問題