PHP 7.0 mktime not working

前端 未结 3 600
失恋的感觉
失恋的感觉 2021-01-21 22:40

getting months using mktime not working in PHP 7.0.

    $month_options=\"\";
    for( $i = 1; $i <= 12; $i++ ) {
        $month_num = str_pad( $i, 2, 0, STR_P         


        
相关标签:
3条回答
  • 2021-01-21 23:05

    Why not use DateTime objects instead? They are easier to work with, and easier to manipulate. DateTime is available from PHP5.2 and upwards.

    This snippet

    $date = new DateTime("january");
    for ($i = 1; $i <= 12; $i++) {
        echo $date->format("F")."\n";
        $date->modify("+1 months");
    }
    

    would output

    January
    February
    March
    April
    May
    June
    July
    August
    September
    October
    November
    December
    

    Live demo

    0 讨论(0)
  • 2021-01-21 23:09

    note PHP7 = is_dst parameter has been removed.

    $month_options="";
    for( $i = 1; $i <= 12; $i++ ) {
        /* $month_num = str_pad( $i, 2, 0, STR_PAD_LEFT ); -- there is no use for this line */ 
        $month_name = date( 'F', mktime( 0, 0, 0, $i + 1, 0, 0)); // is_dst parameter has been removed.
        /* $selected=""; -- there is no use for this line */
        /* $month_options.$month_name."<br/>"; -- you are not correctly set this paramter */
        $month_options .= $month_name."<br/>"; // so if you do like this, it will be correct
    }
    echo $month_options;
    
    0 讨论(0)
  • 2021-01-21 23:11

    It is cleary written here that last parameter is_dst of mktime has been removed in PHP 7, You have to give 6 parameters instead of 7.

    Try this code snippet here 7.0.8

    <?php
    
    ini_set('display_errors', 1);
    $month_options = "";
    for ($i = 1; $i <= 12; $i++)
    {
        $month_num = str_pad($i, 2, 0, STR_PAD_LEFT);
        $month_name = date('F', mktime(0, 0, 0, $i + 1, 0, 0));
        $selected = "";
        $month_options .= $month_name . "<br/>";
    }
    echo $month_options;
    
    0 讨论(0)
提交回复
热议问题