【问题标题】:PHP: Formatting the day number suffix in php with date()PHP:使用 date() 格式化 php 中的日期数字后缀
【发布时间】:2011-03-09 14:58:10
【问题描述】:

我觉得这个有点傻,但是除了必须调用 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);

有人知道更好的方法吗?

【问题讨论】:

    标签: php date formatting


    【解决方案1】:

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

    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,您有一个列表,其中所有字符都替换为它们的特殊含义。

    【讨论】:

      【解决方案2】:

      这对我有用:

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

      【讨论】:

      • +1。当我看到有人回答问题时,我已经写了 80%。
      • 您可以将任何您喜欢的文本添加到 php Date() 函数中作为字符串的一部分,只需确保使用 \ 转义保留字符,如 Trevor 的回答所示。
      【解决方案3】:

      我相信date 函数允许你输入任何你想要的字符串,只要你转义所有格式字符。

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

      【讨论】:

      • 您将英文序数后缀的“S”转义,这是错误的。我已经为你更正了。
      猜你喜欢
      • 2013-05-20
      • 2021-11-14
      • 2012-07-24
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多