date("M.", $datetime)
我希望得到如下的输出:
月
二月
三月
四月
五月(不需要点)
Jun。
Jul。
我不喜欢if语句的想法产生日期,每次检查月份的长度/数量。
有没有更简单的方法?就像一般更改月份名称一样?或者挂接到日期函数本身来实现每次运行日期函数时都会运行的if语句。
感谢
date("M.", $datetime)
我希望得到如下的输出:
月
二月
三月
四月
五月(不需要点)
Jun。
Jul。
我不喜欢if语句的想法产生日期,每次检查月份的长度/数量。
有没有更简单的方法?就像一般更改月份名称一样?或者挂接到日期函数本身来实现每次运行日期函数时都会运行的if语句。
感谢
如果你不想点至五月个月后出现,你将需要某种形式的检查 - 这通常是一个if
。你可以做这样的事情,检查date()
返回的月份是不是5月,如果不是,可以添加一个点。
$date = date("M", $datetime);
if (date("M") != "May")
$date .= ".";
否则你需要实现自己的功能,但最终 - 你将不得不再次结束了这一点,有真的没有办法解决它 - 这是迄今为止最简单,最干净的方式。
你可以把它包装到一个函数中。你不能直接改变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);
这似乎有点锤子来破解一个螺母,或避免在这种情况下,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];
'$ datetime'是什么? – RiggsFolly