我正在尝试:
$m = 'December';
$from = date('jS M Y', strtotime("first day of previous $m"));
但它没有回复约会。在使用中,用户将从下拉框中选择月份。但是,我尝试直接输入'December'来代替变量,但它仍然不起作用。
我期待它回归“2012年12月1日”。
答案 0 :(得分:1)
试试这个
$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
试试这个,这是在1月和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
答案 1 :(得分: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
,则仍会选择当前年份。