2014-02-26 22 views
0

我有這個字符串:如何解析日期字符串爲dd/mm/yyyy?

3913-12-10T20:00:00+0000 

如何將其更改爲DD/MM/YYYY格式?我的主要問題是我不認識這種模式。這實際上是11/11/2013,但我不知道如何提取它。

+0

你從哪裏得到這個日期字符串? –

+3

對我來說看起來不像11/11/2013。 –

+0

'3913-12-10T20:00:00 + 0000'這些數據是如何生成的?如果你也分享這些代碼,我會很高興。 – Praveen

回答

-2
function dateString(d, i) { 

     var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 

     var curr_date = d.getDate() + i; 
     var sup = ""; 

     if (curr_date == 1 || curr_date == 21 || curr_date ==31){ 
      sup = "st"; 
     } 
     else if (curr_date == 2 || curr_date == 22){ 
      sup = "nd"; 
     } 
     else if (curr_date == 3 || curr_date == 23){ 
      sup = "rd"; 
     } 
     else{ 
      sup = "th"; 
     } 

     var curr_month = d.getMonth(); 
     var curr_year = d.getFullYear(); 

     var dateString = curr_date + sup + " " + m_names[curr_month] + " " + curr_year; 

     return dateString; 

    } 
+5

我不知道字符串上有任何'getDate()'函數。 –

3

這樣做只是這樣的:

var d= new Date("3913-12-10T20:00:00+0000"); 
var newDate = d.getDate() + '/' + d.getMonth() + '/' + d.getFullYear(); 

,或者您知道的任何其他日期格式功能。

+1

除非'd.getFullYear'將返回3913當OP聲稱它應該是2013. –

+0

當輸入是3913時,您將得到3913 ....這是正常的Json dateTime格式。 – Cracker0dks

+0

沒有「Json dateTime格式」這樣的東西。另外,如果你閱讀這個問題,OP想要「轉換」到11/11/2013,因爲他聲稱應該是這樣。 –

2

您從中獲取此數據的服務器正在爲您提供不良數據。你應該向他們報告,以便他們能夠修復它。他們可能正在使用已棄用的API和/或手動構建此字符串(不正確)。

字符串有效的ISO-8601,除了年份偏移+1900,月份+1和日期-1偏移。

因此,一種解決方案是將分析它原樣,然後偏移的時間目標。我個人喜歡用於處理JavaScript日期的moment.js庫。

var dateString = '3913-12-10T20:00:00+0000', 
    dateObj = moment(dateString); 

dateObj.subtract({'y': 1900, 'M': 1}).add('d', 1); 

console.log(dateObj.format('MM/DD/YYYY')); // 11/11/2013 

或者如果你喜歡使用本地Date對象:

var dateString = '3913-12-10T20:00:00+0000', 
    dateObj = new Date(dateString); 

dateObj.setFullYear(dateObj.getFullYear() - 1900); 
dateObj.setMonth(dateObj.getMonth() - 1); 
dateObj.setDate(dateObj.getDate() + 1); 

console.log(dateObj.toDateString()); // Mon Nov 11 2013