PHP,日期:附加到月份简短表示的点

时间:2017-06-13 13:50:29

标签: php date

我有

date("M.", $datetime)

我想得到这个输出:
一月
二月
三月
四月
五月(不需要点)
六月。
七月
...

我不喜欢使用if语句来检查每次生成日期时的长度/月数。

有没有更简单的方法?比如一般改变月份名称?或者挂钩到日期函数本身以实现每次运行日期函数时运行的if语句。

由于

2 个答案:

答案 0 :(得分:1)

如果您不希望在五月之后出现点,则需要检查某种类型 - 通常是if。您可以执行以下操作,检查date()返回的月份是否不是May,如果不是则添加一个点。

$date = date("M", $datetime);
if (date("M") != "May")
    $date .= ".";

否则你需要实现自己的功能,但最终 - 你将不得不再次使用它,实际上没有办法解决它 - 这是迄今为止最简单,最干净的方法。 / p>

你可以将它包装成一个函数。您无法直接更改date()功能,但您可以创建自己的功能。

function my_date($format, int $timestamp = null) {
    if ($timestamp === null)
        $timestamp = time();

    $date = date($format, $timestamp);
    if ($format == "M" && date("M", $timestamp) != "May")
        $date .= ".";
    return $date;
}

然后将其用作

echo my_date("M", $datetime);

答案 1 :(得分:0)

在这种情况下,这似乎是一个破解坚果或者避免使用IF语句的锤子,但你可以在其中创建一个包含月份名称的数组,如果你愿意,可以使用它来输出不同的月份名称

$m_arr = [0,'Jan.','Feb.','Mar.','Apr.','May','Jun.',
            'Jul.', 'Aug.', 'Sep.','Oct.','Nov.','Dec.'];

$m = (int)date('n', $datetime);

echo $m_arr[$m];