PHP:使用date()格式化php中的日期编号后缀

时间:2011-03-09 14:58:10

标签: php date formatting

我觉得这个有点傻,但除了必须调用date()3次之外,还有一种更优雅的方式来格式化日期数字后缀(st,th)吗?

我想在html中输出:

<p>January, 1<sup>st</sup>, 2011</p>

我现在在做什么(感觉非常沉重)在php中:

//I am omitting the <p> tags:
echo date('M j',$timestamp)  
. '<sup>' . date('S', $timestamp) . '</sup>'  
. date(' Y', $timestamp);

任何人都知道更好的方法吗?

3 个答案:

答案 0 :(得分:15)

您只需要转义由日期函数解释的字符。

echo date('M j<\sup>S</\sup> Y'); // < PHP 5.2.2
echo date('M j<\s\up>S</\s\up> Y'); // >= PHP 5.2.2

PHP date documentation,您有一个列表,其中所有字符都被其特殊含义所取代。

答案 1 :(得分:12)

这对我有用:

echo date('M j\<\s\u\p\>S\<\/\s\u\p\> Y', $timestamp);

答案 2 :(得分:1)

我相信date函数允许您输入所需的任何字符串,前提是您可以转义所有格式字符。

echo date('M j<\s\up>S<\/\s\up> Y', $timestamp);