2015-10-12 60 views
-2

我想知道是否有任何方法可以從日期字符串中提取日期格式。如何從日期字符串通過jquery或javascript提取日期格式

例如假設我們有一個日期字符串,如「星期三,2015年9月23日 - 20:15」

毫無疑問,這表達的是,通過格式格式化字符串的日期對象模式。

我需要一個方法可以告訴我什麼是格式模式。

+0

你是什麼意思的「日期格式」?你只想得到'09/23/2015 /'嗎?或者你想要一個日期對象?不知道你想要什麼。並且你想使用JavaScript嗎? –

+0

我的意思是,例如,您使用「Y-M-D」格式化日期到日期字符串,如「2015-10-20」。現在我想給「2015-10-20」方法作爲參數,方法返回「YMD作爲格式模式 – Mehrdad201

回答

0

所以Date.parse()做了一些很酷的事情,但它看起來不像它的日期字符串。如果你知道它將始終是這種格式,你可以使用正則表達式!

你仍然需要知道你自己的格式是什麼。在你的情況下,你有DDD, MM/DD/YYYY - HH:mm或類似的東西。一個匹配的正則表達式是:\D*(\d+)/(\d+)/(\d+)\D+(\d+):(\d+)

所以你需要對一個字符串運行它,然後獲取結果並把它放到一個新的Date()中。這裏有一個完整的示例:

var rgx = /\D*(\d+)\/(\d+)\/(\d+)\D+(\d+):(\d+)/gi; 
var str = "Wed, 09/23/2015 - 20:15"; 
var matches = rgx.exec(str); 

console.log(matches); 
/* 
[ 'Wed, 09/23/2015 - 20:15', 
    '09', 
    '23', 
    '2015', 
    '20', 
    '15', 
    index: 0, 
    input: 'Wed, 09/23/2015 - 20:15' ] 
*/ 

// new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]); 
var myDate = new Date(matches[3], matches[1], matches[2], matches[4], matches[5]); 
console.log(myDate); 
// Fri Oct 23 2015 20:15:00 GMT-0700 (Pacific Daylight Time) 

你也許可以找到一個圖書館,在那裏,將採取隨機日期格式字符串(即DDD, MM/DD/YYYY - HH:mm),併爲您創建一個新的Date對象,但我一直猶豫像這樣的圖書館引入像我上面所做的那樣簡單的事情。

+0

你知道,它是動態的,在這個例子中參數是」Wed,09/23/2015 - 20: 15「,但可能參數是」09/23/2015「,所以方法必須給我們其他日期格式作爲返回值,因此我認爲我們不能使用一個常量正則表達式 您的想法是什麼? – Mehrdad201

+0

您需要一套正則表達式對於你期望的模式類型可能是這樣的,所以你可以先匹配它,如果它匹配,那麼你就可以執行它,你給出的第二個日期實際上可以和Date.parse()一起工作。並且容易出錯,所以你的主要努力應該試圖鎖定哪些日期格式是允許的。如果這是用戶輸入,只需提供一個日期選擇器或讓他們選擇一種格式。 –