我希望能够找出当前日期变量的月份。我是前vb.net,其中的方法只有date.Month
。我如何在PHP中执行此操作?
谢谢,
Jonesy
我使用了date_format($date, "m"); //01, 02..12
这就是我想要的,现在问题是我如何将它与int进行比较,因为$monthnumber = 01
只是1
答案 0 :(得分:77)
date('M')
或date('n')
或date('m')
...
<强>更新强>
m 一个月的数字表示,前导零 01到12
n 一个月的数字表示,没有前导零 1到12
F 一个月的字母表示 1月到12月
答案 1 :(得分:65)
您的“数据变量”是什么样的?如果是这样的话:
$mydate = "2010-05-12 13:57:01";
您可以这样做:
$month = date("m",strtotime($mydate));
修改强>
要与int进行比较,只需执行一个date_format($date,"n");
,它将为您提供不带前导零的月份。
或者,尝试其中一种:
if((int)$month == 1)...
if(abs($month) == 1)...
或者使用ltrim,round,floor的奇怪东西......但是带有“n”的date_format()将是最好的。
答案 2 :(得分:9)
$unixtime = strtotime($test);
echo date('m', $unixtime); //month
echo date('d', $unixtime);
echo date('y', $unixtime );
答案 3 :(得分:5)
因为date_format使用与日期(http://www.php.net/manual/en/function.date.php)相同的格式,“一个月的数字表示,没有前导零”是小写的n ..所以
echo date('n'); // "9"
答案 4 :(得分:2)
如果您没有指明系统的当前日期或变量中的日期,我将通过示例回答后者。
<?php
$dateAsString = "Wed, 11 Apr 2018 19:00:00 -0500";
// This converts it to a unix timestamp so that the date() function can work with it.
$dateAsUnixTimestamp = strtotime($dateAsString);
// Output it month is various formats according to http://php.net/date
echo date('M',$dateAsUnixTimestamp);
// Will output Apr
echo date('n',$dateAsUnixTimestamp);
// Will output 4
echo date('m',$dateAsUnixTimestamp);
// Will output 04
?>
答案 5 :(得分:0)
要与int进行比较,请执行以下操作:
<?php
$date = date("m");
$dateToCompareTo = 05;
if (strval($date) == strval($dateToCompareTo)) {
echo "They are the same";
}
?>