採取被格式化像一個字符串的最好方法......日期字符串格式化
YYYY-MM-DD
,並使它看起來像...
MM/DD/YYYY
的原因,它是不是JavaScript日期對象是因爲我正在處理大量數據,並且這些日期正在從數據庫中提取。
我看不需要將它轉換爲日期對象。
採取被格式化像一個字符串的最好方法......日期字符串格式化
YYYY-MM-DD
,並使它看起來像...
MM/DD/YYYY
的原因,它是不是JavaScript日期對象是因爲我正在處理大量數據,並且這些日期正在從數據庫中提取。
我看不需要將它轉換爲日期對象。
您可以使用JavaScript的(假設JS,因爲你的問題被標記爲這樣)正則表達式:
var date = "2010-05-09";
var formatted = date.replace(/([0-9]{4})-([0-9]{2})-([0-9]{2})/, "$2/$3/$1")
我喜歡什麼這更比使用字符串是,它似乎更加明顯正在做什麼。
如果你用斜槓它將解析取代破折號,那麼你可以使用日期函數來獲取各種組件(或轉換使用不同的toString()函數的一個字符串)。
var date = new Date(Date.parse(old.replace(/-/g,'/')));
alert(date.getMonth() + '/' + date.getDate() + '/' + date.getFullYear());
這樣做的好處是能夠將日期用作計算日期,而不僅僅是進行字符串格式化。如果字符串格式是所有你需要的和你的日期字符串總是有效的,那麼使用@Guffa的substr方法可能是處理它的最好方法。
日期沒有功能,並始終有效(他們插入作爲時間戳通過MySQL)...所以至少我希望mysql的datestamp格式將是有效的! lol – 2010-02-03 19:20:39
實際上,在我的測試中,vivin的正則表達式的速度快了20%。最慢的方法是將cjstehno分成數組和組合方法。 – ghoppe 2010-02-03 19:32:30
@ghoppe - 好的,但我會向你提出「更快」並不總是等同於「更好」。可讀性也是一個問題。根據你的正則表達式foo,正則表達式的解決方案可能簡直難以理解,而任何人都應該能夠找出substr。實際上,我發現我是最易理解的,儘管它可能是最慢的。任何不能立即看到它做什麼的人都不應該編程。 :-) – tvanfosson 2010-02-03 19:40:56
可能以某種身份或其他重複...不能在第一次搜索 – 2010-02-03 18:21:56
這是最好日期時間解析和格式化解決發現了什麼,不是字符串操作作爲標籤建議。 – 2010-02-03 18:22:31