2012-08-06 79 views
0

我使用自定義的插件jQuery UI的日期選擇器 - Timepickerjavascript日期 - 指定傳入的日期格式(jQuery用戶界面的DateTimePicker)

我有兩個領域,從輸入字段,需要檢查如果從「」大於「」。我有我的自定義onClose函數(onClose:function(dateText,inst){}),但第一個參數是input的值 - 一個日期字符串。但我的日期字符串不是「有效的」JS日期時間格式,所以我無法獲取Date對象實例並進行比較。

它是dd.mm.yyyy hh:mm,例如, 2012年8月6日12:00

我不知道是否有什麼如何指定輸入字符串格式,如:

var date = new Date('dd.mm.yyyy hh:mm', dateText); 

如果不是我會讓你解析它在某種程度上...

謝謝提前獲得幫助。

回答

1

JavaScript中沒有這樣的實用工具。該月的部分是零基礎

function parseDate(str) { 
    var m = str.match(/^(\d\d)\.(\d\d)\.(\d{4}) (\d\d):(\d\d)$/); 
    return (m) ? new Date(m[3], m[2]-1, m[1], m[4], m[5]) : null; 
} 

注意(而不是一個基礎,因此一月份= 0,因此minux之一):如果我是你,我會用一個正則表達式匹配的日期格式並使用the form of the Date constructor which accepts date parts。另外請注意,Number constructor用於將字符串轉換爲數字,因此您不必擔心可能以parseInt(...)可能發生的數字前綴爲零的數字被解釋爲八進制數。

+0

謝謝,我會試一試。 – 2012-08-06 15:30:23

+0

變量m對我來說總是空的......我不知道爲什麼。我已用Firefox的Reqular Expression Tester對其進行測試 – 2012-08-06 15:49:33

+0

非常仔細地檢查輸入字符串。它是否有任何額外的空格(之前?之後?)? – maerics 2012-08-06 16:00:07