php
  • date
  • 2017-03-01 128 views 2 likes 
    2

    根据服务器:PHP的strtotime最后一天上个月功能产生2个月前

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

    的php.ini

    date.timezone = America/New_York 
    

    当我这样做,我得到一个奇怪的结果:

    $month = date('M',strtotime('last day last month')); 
    $sel = "SELECT records where month='".$month."'"; 
    echo $sel; 
    

    结果是:

    SELECT records where month='Jan'; 
    

    任何想法为什么不是2月?

    回答

    3

    当使用“下个月”,“上个月”,“+ 1月”,“ - 1月”或+的任意组合/ -X个月。

    它会在1月30日和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月31日将输出“三月”在上面,用“下个月”即使你可能希望它输出“二月”。

    (“+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

    能不能请你上一个月的,而不是上个月

    $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' 
    
    相关问题