2014-10-29 109 views
0

我試圖改變我們在我們的應用程序中的日期格式(我們使用strftime,strtotime等)來使用更多的最新IntlDateFormatter。我read the documentation,但我不能真正理解所有的構造函數的參數。有人可以向我解釋嗎?這是我現在是怎麼看的東西:解釋IntlDateFormatter的構造函數的一些參數

  • locale:我得到這一個:用於輸出月份名稱,日期名稱的語言環境等
  • datetype:我真不明白它的用途。它是輸入格式嗎?爲什麼它僅限於幾個常量? Doc說「日期類型使用」日期類型是什麼意思?
  • timetype:這個一樣,它是什麼?爲什麼它僅限於幾個常量?醫生說「時間類型使用」
  • timezone:我明白了,時區所用
  • calendar:我得到這一個:型日曆,公曆的大部分時間
  • pattern:實際模式我想我的日期被格式化

所以,它的datetypetimetype,我真的不明白它的用途。

回答

1

這些標誌指定輸出關於日期/時間的信息量。 documentation about the constants used比您在問題中鏈接的內容更具洞察力。

所以基本上如果datetype設置爲IntlDateFormatter::LONG輸出應該是January 12, 1952,或者如果它被設置爲IntlDateFormatter::MEDIUM比輸出應該Jan 12, 1952

+0

對不起,但我不認爲這是它。如果我將'datetype'設置爲'IntlDateFormatter :: SHORT',但是我的模式設置爲'cccc MMMM d y',則輸出:2014年1月26日星期日,因此它似乎不會對輸出產生影響。 – MaxiWheat 2014-10-29 13:27:54

+1

@MaxiWheat該模式將覆蓋'datetype'和'timetype'設置。如果你刪除你的模式,它會按預期工作。如果你的模式是你想如何格式化你的時間戳,那麼不要使用'datetype'和'timetype'設置。 – Crackertastic 2014-10-29 14:05:58

+0

謝謝,如果沒有指定模式,這些參數並不明顯是「默認格式化」。 – MaxiWheat 2014-10-29 14:07:45