2014-02-28 84 views

回答

1

RegExp可以解決這個問題。

您只需要一個數組與月份進行比較,並將其更改爲荷蘭語中的相應月份。

的jsfiddle是在這裏:http://jsfiddle.net/JdLBs/

代碼在這裏:

var date = "2014-02-28T20:00:00+0100"; 
var search = /(.*)T(.*)\+/i; 
var result = date.match(search); 

var tempYear = result[1].split('-'); 
var tempTime = result[2].split(':'); 

var dutchDate = tempYear[2] + ' ' + tempYear[1] + ' ' + tempYear[0] + ' - ' + tempTime[0] + ':' + tempTime[1]; 

console.log(dutchDate); 
3

看看moment.js。它以任何你想要的格式返回日期:http://momentjs.com/

+1

不想使用它,因爲它對我的應用程序來說很重要..有沒有其他方法可以做到這一點? – user2811083

+1

好吧!我想你可以使用JavaScript的Date函數,如:var date = new Date(「2014-02-28T20:00:00 + 0100」)。我想這應該工作。 –

1

如果你可以限制自己支持ECMAScript Internationalization API最新的瀏覽器,那麼你就可以做到以下幾點:

var dt = new Date("2014-02-28T20:00:00+01:00"); 

var options = { year:'numeric', 
       month:'long', 
       day:'numeric', 
       hour:'numeric', 
       minute:'numeric'}; 

var s = dt.toLocaleString('nl', options); 

結果是"28 februari 2014 11:00"。如果您確實需要連字符:

var dt = new Date("2014-02-28T20:00:00+01:00"); 

var dateOptions = { year:'numeric', month:'long', day:'numeric' }; 
var timeOptions = { hour:'numeric', minute:'numeric'}; 

var s = dt.toLocaleDateString('nl', dateOptions) + ' - ' + 
     dt.toLocaleTimeString('nl', timeOptions); 

另請參閱輸入字符串的偏移量。某些瀏覽器(如Internet Explorer)不會接受採用ISO8601格式的+0100作爲偏移量,但需要完全擴展+01:00

正如anurag_29指出的那樣,如果您需要跨瀏覽器執行此操作,並且在較舊的瀏覽器中,您最好的選擇是moment.js