0

我正在使用数组 $row[dt]; 从 mySQL 表(例如 2010-12-03)中提取 Ymd 形式的日期字符串;

echo $row["dt"]; // in a while loop

我想将该存储的字符串输出为“Mar 2nd”

我已经尝试过strtotime()date( "m d", $row['dt'] )但它们不起作用..例如,后者只输出“Dec 31”

可以这样做吗?谢谢

4

3 回答 3

3

我相信这就是您正在寻找的答案。j而不是 the的原因d是因为海报要求Mar 2nd。使用d将输出Mar 02nd

echo date("M jS", strtotime($row['dt']));

编辑:M 而不是 m。

于 2013-01-30T04:34:10.843 回答
0

看起来 PHP 没有对序数足够的内置支持,所以你必须手动完成。

在您的代码中包含以下函数:

function suffix($number) {
    $last = substr($number, -1, 1);
    switch($last) {
        case "1": return "st";
        case "2": return "nd";
        case "3": return "rd";
        default: return "th";
    }
}

...那么您的 PHP 将是:

echo date( "m d", $row['dt'] ) . suffix( date( "d", $row['dt'] ) );
于 2013-01-30T04:27:47.823 回答
0

你可以这样转换,

echo date("M jS", strtotime($row['dt']));

在这里,您可以获得所有 PHP 日期和时间格式。

PHP 日期和时间格式

于 2013-01-30T04:36:21.113 回答