2010-07-09 87 views

回答

1

Date.parse實際上應該將大部分日期字符串解析爲相應的時間戳。

的2次警告似乎是:

  • 毫秒不支持,因而具有解析後進行分離,並添加。
  • 它會假設當地時間,所以'GMT''UTC'應該在解析之前附加。

有了這些想法,下面應該工作:

function parseSoapDate(dateString) { 
    var dateParts = dateString.split('.'), 
     dateParse = dateParts[0], 
     dateMilli = dateParts[1]; 

    return new Date(
    Date.parse(dateParse + ' GMT') + 
    parseInt(dateMilli, 10) 
); 
} 

var date = parseSoapDate('2010/07/08 04:21:24.477'); 

對於UTC本地時間,JavaScript的Date對象應該已經處理,對於你,因爲他們可以報兩個UTC和日期用戶的本地時區。您可以指定要由該方法的名稱(無論它在它UTC與否):

alert(date.toString());  // local time 
alert(date.toUTCString()); // UTC time 
0

這應該工作:

var dateStr = "2010/07/08 04:21:24.477"; 
var d = new Date(dateStr.split('.')[0]); 
d.setUTCHours(0); 
+0

「2010/07/08 04:21:24.477」 不是一個有效的日期格式。 – Anax 2010-07-09 14:13:11

+0

固定。至少在Chrome上工作。 – 2010-07-09 14:14:54

-1

它看起來像的日期/時間響應採用ISO格式,這是提供日期信息的明智方式。

假設返回的日期是7-8-2010。這是7月8日還是8月7日?擁有ISO格式(YYYY/MM/DD)的日期解決了這種歧義。

可以將此日期轉換爲以許多不同的方式所需要的格式,即

var input = '2010/07/08 04:21:24.477'; 
var now = new Date(input.slice(0, input.indexOf('.'))); 
alert(now.toLocaleString()); 

您可能希望在互聯網上搜索Date對象還是找片段,讓您使用轉換日期許多不同的格式。

+0

實際上不是,日期不是ISO格式,根據http://www.iso.org/iso/date_and_time_format將會是'2010-07-08T04:21:24.477' – 2011-01-18 16:37:57

0

我的JSON回報:YYYY-MM-DD HH:MM:SS,本地化將在選定的瀏覽器Date.prototype.toLocaleDataString("en-us"[,option])只工作

function stringToDate(s) { 
     var language = window.navigator.userLanguage || window.navigator.language; 
     var options = {year: "numeric", month: "numeric", day: "numeric"};   
     s = s.split(/[-: ]/);   
     d = new Date(Date.UTC(s[0], s[1]-1, s[2], s[3], s[4], s[5])); 
     return d.toLocaleDateString(language , options)+" "+d.toLocaleTimeString(); 
    } 
// return 
// Friday, November 15, 2013 2:21:04 PM --> FF25 
// 11/15/2013 2:21:04 PM     --> Chrome31 
相關問題