我正在努力:
$m = 'December';
$from = date('jS M Y', strtotime("first day of previous $m"));
但它没有返回日期。 在使用时,每月将通过从下拉框用户选择。 不过,我已经直接一位的变量的尝试输入“月”,它仍然无法正常工作。
我期待它返回“2012年12月1日”。
我正在努力:
$m = 'December';
$from = date('jS M Y', strtotime("first day of previous $m"));
但它没有返回日期。 在使用时,每月将通过从下拉框用户选择。 不过,我已经直接一位的变量的尝试输入“月”,它仍然无法正常工作。
我期待它返回“2012年12月1日”。
鉴于你的代码, $m
是当月以文本格式,你可以使用这样的:
$m = 'June';
$m = date('m', strtotime($m));
$c = (mktime(0,0,0,$m, 1) < time()) ? mktime(0,0,0,$m,1) : mktime(0,0,0,$m,1, date("Y") -1);
$from = date('jS M Y', $c);
这样做是它的月转换为替代字符串值的数值和商店。 然后将其分配$c
取决于如果当年的月份是小于当前时间戳无论是当年的月或上年同期的月份。 因此,如果当前时间戳是June 1st at 1am
,则本年度仍将被选中。
DEMO
尝试这个
$m = '12'; // set here numeric form of month
echo $from = date('jS M Y', strtotime("01-".$m."-".(date("Y") -1)));
要么
$m = 'December';
echo $from = date('jS M Y', strtotime("01-".$m."-".(date("Y") -1)));
1st Dec 2012
试试这个,这是January测试,以及在12月
$m = '01';
$new_m = date('m'); // get current month
if($m > $new_m) {
$year = date("Y") -1;
} else {
$year = date("Y");
}
echo $from = date('jS M Y', strtotime("01-".$m."-".$year));
1st Jan 2013