2010-03-05 47 views
8

jQuery的通過測試的日期的有效性區域:在JavaScript設置

!/Invalid|NaN/.test(new Date(value)) 

new Date(dateString)相同Date.parse(dateString)並採用瀏覽器/操作系統的語言環境來解析字符串。

我想解析DD/MM/YYYY但我得到一個錯誤,因爲我的瀏覽器正在尋找MM/DD/YYYY。由於我的產品只能由DD/MM人使用,我想強制這種行爲。

我可以寫一個定製的驗證,但有可能通過JavaScript改變瀏覽器的語言環境中呢?

回答

-2

你不能改變的區域,因爲在EMCAScript specification沒有這樣的功能。

然而,有一個好的包php.js是在JavaScript實現PHP函數。

的功能的兩個是setlocale()和date()。你可以使用它們。

+5

哇,我永遠不會建議任何人用任意長度的極點觸摸那個php.js代碼。育。 – Pointy 2010-03-05 09:05:01

+0

他總是可以看到依賴關係並只使用必要的功能。 – Sagi 2010-03-05 09:32:44

+1

即時消息不使用php.js,接受的信息,它不可能改變語言環境在javascript – ariel 2010-03-05 23:13:52

-1

如果你的產品將只能由DD/MM/YYYY人使用,您的瀏覽器設置爲DD/MM/YYYY支持的語言環境。

2

您應該使用moment.js解析日期。

//parse string according to format and return new moment 
var day = moment("16/12/2017", "DD/MM/YYYY"); 

var dayAsDate = day.toDate(); //you can even covert the moment to a Date 

Globalize也有一個date parsing module,如果你需要處理在其他語言環境/腳本日期字符串。