如何以第1版,第2版,第25版,第23版等格式显示strftime的日期......?
我目前的代码如下:
strftime("%B %d, %Y",$expiration_date);
我已经检查了一些解决方案,但无效。
答案 0 :(得分:2)
如果您的日期在后台使用时间戳,则只需使用PHP date()
格式化日期即可。它的格式字符S
完全符合您的需要:
date('jS', $timestamp);
会返回类似“1st”,“2nd”,“3rd”等的内容。
如果您不使用时间戳,olivier's solution可能是您最好的选择,或者将日期转换为strtotime()
的时间戳。处理后者对于这个问题并不值得,但是如果你计划在日期进行算术运算(例如找到两个日期之间的间隔),你应该考虑时间戳。
答案 1 :(得分:0)
您可以使用this function:
<?php
function addOrdinalNumberSuffix($num) {
if (!in_array(($num % 100), array(11,12,13))) {
switch ($num % 10) {
// Handle 1st, 2nd, 3rd
case 1: return $num.'st';
case 2: return $num.'nd';
case 3: return $num.'rd';
}
}
return $num.'th';
}
$expiration_date = time();
$date_str = strftime("%B ", $expiration_date);
$date_str .= addOrdinalNumberSuffix(strftime("%d", $expiration_date));
$date_str .= strftime(", %Y", $expiration_date);
echo $date_str; // July 18th, 2014
?>
这就是说,评论中 Lightness Races in Orbit 中提到的workaround对我来说似乎更好。