2017-03-01 11 views
2

のPHPのstrtotime

$month = date('M',strtotime('last day last month')); 
$sel = "SELECT records where month='".$month."'"; 
echo $sel; 
:私はこれを行うと、私は奇妙な結果を

$ date 
Wed Mar 1 01:46:06 EST 2017 

php.iniの

date.timezone = America/New_York 

を取得

結果は次のとおりです。

SELECT records where month='Jan'; 

何か考えてみませんか?

答えて

3

先月前月てみ代わりにしてくださいでき-Xヶ月。

1月30日と31日に直感的ではない結果が得られます。

で説明したように:あなたは出力「2月」にそれをしたい場合でも1月31日の意志出力「マーチ」に「来月」を使用して、http://derickrethans.nl/obtaining-the-next-month-in-php.html上記で

<?php 
    $d = new DateTime('2010-01-31'); 
    $d->modify('next month'); 
    echo $d->format('F'), "\n"; 
?> 

(「1月」と同じ結果が得られます。「先月」、「-1月は」同様に影響を受けているが、結果は3月上旬に見られる。)

取得する方法彼らは「来月は」でも、1月30日と1月31日に「翌月の最初の日」を使用することであると言うとき、人々は一般的に探していることだろうか。

<?php 
    $d = new DateTime('2010-01-08'); 
    $d->modify('first day of next month'); 
    echo $d->format('F'), "\n"; 
?> 


<?php 
    $d = new DateTime('2010-01-08'); 
    $d->modify('first day of +1 month'); 
    echo $d->format('F'), "\n"; 
?> 
0

「来月」、「先月」、「1月」、「-1月」または+の任意の組み合わせを使用する場合は、あなたが/

$month = date('M',strtotime('last day of previous month')); 
+0

前と後の違いはありません。 – bart2puck

0

コードを使用しますが、先月たい場合

$month = date('M',strtotime('last month')); 

$sel = "SELECT records where month='".$month."'"; 

echo $sel; 

結果:

SELECT records where month='Feb'