0

私はしようとしています:

$m = 'December';
$from = date('jS M Y', strtotime("first day of previous $m"));

しかし、それは日付を返しません。使用中、月はユーザーがドロップダウン ボックスから選択します。ただし、変数の代わりに「December」と直接入力しようとしましたが、まだ機能しません。

「2012 年 12 月 1 日」に戻ることを期待しています。

4

2 に答える 2

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 

コードパッド

コードパッド2

編集

これを試してみてください。これは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 

コードパッド

于 2013-05-05T03:58:18.943 に答える
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現在の年が引き続き選択されます。

デモ

于 2013-05-05T04:15:49.797 に答える