2016-08-25 75 views
0

如何將具有日期時間的字符串轉換爲日期時間格式。 我的代碼是:Date.parse()在火狐和IE.Its工作不正常在Chrome中工作

 In Chrome its working fine: 

     var str = "05-Sep-2013 01:05:15 PM " 
     var res = Date.parse(str) 
     console.log(res) //o/p:1378366515000 
     var result = new Date(res) 
     console.log(result) //o/p:Thu Sep 05 2013 13:05:15 GMT+0530 (India Standard Time) 

    In Firefox and IE: 
    console.log(res) //o/p: NaN 
    console.log(result) //o/p: Date {Invalid Date} 

請你幫我一下。提前致謝。

+1

轉換橫線,以斜線 – SoluableNonagon

+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/parse – Xotic750

+0

感謝@ SoluableNonagon, \t \t無功海峽=「05九月2013 01:05:15 PM「; \t \t str1 = str.replace(/ -/g,'/'); \t \t var res = Date.parse(str1); \t \t console.log(res); var result = new Date(res) \t \t console。日誌(結果); \t \t \t \t O/P:1378366515000 日期{星期四2013年9月5日13時05分15秒GMT + 0530(印度標準時間)} \t \t \t \t \t \t但我想「星期四2013年9月5日13:格林威治標準時間05:15 + 0530(印度標準時間)「,我們將如何採取。 – Venky

回答

-1

IE和FF想 '/' 而不是 ' - ' 在日期

http://plnkr.co/edit/9ZoHwjvgMA2twEoTJTn9?p=preview

var str = "05-Sep-2013 01:05:15 PM "; 
console.log(Date.parse(str)); // NaN 

console.log(Date.parse(str.replace(/-/g, '/'))); // 1378404315000 

所以解析讓你毫秒,現在你可以把它放在一個日期:

var d = new Date(Date.parse(str.replace(/-/g, '/'))); 
console.log(d); // 2013-09-05T18:05:15.000Z 

在那裏,它與您的輸入日期相同,但格式不同。

+0

它不能在IE中工作,請你幫我解決。 – Venky

+0

按照https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/parse自己解析字符串,使用數據創建一個新的Date對象,然後使用Date方法來格式化必需字符串。在這裏有很多例子。解析你的字符串的一個例子。 http://stackoverflow.com/questions/27720916/converting-string-into-date-format-in-js/27721275#27721275 – Xotic750

+0

謝謝@ Xotic750,console.log(Date.parse(str.replace(/ -/g ,'/'))); //在IE中是o/p NaN。請幫幫我。 – Venky

0

解析自己的串上

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

不建議使用Date.parse作爲ES5之前的建議, 字符串的解析完全是依賴於實現的。在不同的主機解析日期字符串方面仍有許多差異,因此應該手動解析日期 字符串(如果要容納多個不同的格式,庫可以提供幫助)。

我給了你一個關於SO的答案的鏈接,它解釋瞭如何做到這一點。

Converting String into date format in JS

這個例子應該工作,即使在很老的還是很破的瀏覽器。

var lookupMonthName = { 
 
    jan: 0, 
 
    feb: 1, 
 
    mar: 2, 
 
    apr: 3, 
 
    may: 4, 
 
    jun: 5, 
 
    jul: 6, 
 
    aug: 7, 
 
    sep: 8, 
 
    oct: 9, 
 
    nov: 10, 
 
    dec: 11 
 
}; 
 

 
function customParse(dateTimeStr) { 
 
    var dateTime = dateTimeStr.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '').split(' '); 
 
    var date = dateTime[0].split('-'); 
 
    date[1] = lookupMonthName[date[1].toLowerCase()].toString(); 
 
    date.reverse(); 
 
    var time = dateTime[1].split(':'); 
 
    if (dateTime[2].toUpperCase() === 'PM') { 
 
    time[0] = (parseInt(time[0], 10) + 12).toString(); 
 
    } 
 
    var args = date.concat(time); 
 
    console.log(args); 
 
    return new Date(Date.UTC.apply(null, args)); 
 
} 
 

 
var str = '05-Sep-2013 01:05:15 PM '; 
 
var date = customParse(str); 
 
document.getElementById('out').appendChild(document.createTextNode(date)); 
 
console.log(date);
<pre id="out"></pre>

要格式化從Date對象的字符串,看到這麼回答

Where can I find documentation on formatting a date in JavaScript?

一點力氣在你的一部分,你就已經能夠找到此信息你自己。

相關問題