我有
date("M.", $datetime)
我想得到这个输出:
一月
二月
三月
四月
五月(不需要点)
六月。
七月
...
我不喜欢使用if语句来检查每次生成日期时的长度/月数。
有没有更简单的方法?比如一般改变月份名称?或者挂钩到日期函数本身以实现每次运行日期函数时运行的if语句。
由于
答案 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];