PHP: форматирование суффикса номера дня в php с помощью date () - PullRequest
9 голосов
/ 09 марта 2011

Я чувствую себя немного глупо из-за этого, но есть ли более элегантный способ форматирования суффикса номера дня (st, th), кроме необходимости вызывать функцию date () 3 раза?

Что я пытаюсь вывести в 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 ]

16 голосов
/ 09 марта 2011

Вам просто нужно экранировать символы, которые интерпретируются функцией даты.

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 дата документации у вас есть список со всеми символами, замененными их специальным значением.

12 голосов
/ 09 марта 2011

Это сработало для меня:

echo date('M j\<\s\u\p\>S\<\/\s\u\p\> Y', $timestamp);
1 голос
/ 09 марта 2011

Я считаю, что функция date позволяет вам вводить любую строку, которую вы хотите, при условии, что вы экранировали все символы формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...