echo date("m", strtotime("january"));
按预期返回01
echo date("m", strtotime("february"));
但这会返回03
其他人遇到过这个问题吗?
PHP Version 5.1.6
答案 0 :(得分:24)
今天是29日。今年2月没有29日,因为你没有在2月指定一天,所以它正在使用“今天”。 strtotime
函数使用相对日期,因此2月29日基本上是今年3月1日。
解决您的问题:
echo date("m", strtotime("February 1"));
答案 1 :(得分:0)
由于strtotime()仅处理英文日期格式,您应该尝试使用我刚刚为您制作的此功能。有了这个,您也可以使用其他语言处理月份名称。
不知道这对您的申请是否必不可少,但现在您已经拥有它。
function getMonth($month, $leadingZero = true) {
$month = strtolower(trim($month)); // Normalize
$months = array('january' => '1',
'february' => '2',
'march' => '3',
'april' => '4',
'may' => '5',
'june' => '6',
'july' => '7',
'august' => '8',
'september' => '9',
'october' => '10',
'november' => '11',
'december' => '12',
'dezember' => '12', // German abrevation
'marts' => '3', // Danish abrevation for March
);
if(isset($months[$month])) {
return $leadingZero ? substr('0' . $months[$month], -2) : $months[$month];
} else {
return false;
}
}