2014-06-18 102 views
3

所以,如果我使用順序後綴:格式化日期,該月的一天

<?php echo date_format($date, "j M Y") ?> 

我得到以下格式的日期:1月5日1950年

不過,我要的是什麼沿線:1950年1月5日

我會怎麼去添加額外的th?

+2

5秒鐘在你正在使用的功能的手冊頁上將回答這個問題,但你只是**懶惰** –

+1

PHP是我見過的最有說服力的語言之一,他們有一個官員該手冊解釋了該語言或其任何官方擴展中包含的每個功能,類別和方法的行爲。快速查看日期()手冊,你會得到你的答案。 – Havenard

回答

11

看看這裏http://www.php.net/manual/en/function.date.php的格式,但

<?php echo date_format($date, "jS M Y") ?><br> 

對於國際日期,我想你會做這樣的事情:

$ordinal = new NumberFormatter($locale, NumberFormatter::ORDINAL); 
$ordinal = $ordinal->format(date_format($date, "j")); 
$pattern = "d'{$ordinal}' MMM yyyy"; 
$dateFormatter = new IntlDateFormatter($locale, IntlDateFormatter::FULL, IntlDateFormatter::FULL, $timezone, IntlDateFormatter::GREGORIAN); 
$dateFormatter->setPattern($pattern); 
$dateFormatter->format($date->getTimestamp()); 

以上是未經測試,但看起來它會工作。

+0

S涉及「月份的英文序號後綴」。用其他語言輸出呢? – challet

+1

@challet http://php.net/manual/en/class.intldateformatter.php – dave

+0

IntlDateFormatter非常棒,除了序號後綴:沒有類似於date_format中的「S」:http://www.icu -project.org/apiref/icu4c/classSimpleDateFormat.html#details – challet