私はしようとしています:
$m = 'December';
$from = date('jS M Y', strtotime("first day of previous $m"));
しかし、それは日付を返しません。使用中、月はユーザーがドロップダウン ボックスから選択します。ただし、変数の代わりに「December」と直接入力しようとしましたが、まだ機能しません。
「2012 年 12 月 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
テキスト形式の現在の月であるコードを考えると、$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
現在の年が引き続き選択されます。