【问题标题】:Print month name instead of month number in PHP and JavaScript在 PHP 和 JavaScript 中打印月份名称而不是月份编号
【发布时间】:2018-02-15 18:28:38
【问题描述】:

我有这个代码来显示日历滑块来选择一个日期。它显示日期如 2017-09-17、2017-09-18、2017-09-19。

这是一个显示日期的滑块。

我想显示日期

September-17
September-18
September-19

带有月份名称。也不需要年份名称。

<?php 

$page2=$_SERVER["PHP_SELF"];
$page2=explode("/",$page2);
$page2=$page2[count($page2)-1];

$id_sport2=$_GET["id_sport"];

    $m=date("m");
    $day=date("d");
    $year=date("Y");
    $dates=array();
    $dates2=array();
    $tmp=array();
    for($i=1;$i<32; $i++){
        if($i<10){
            $ii="0$i";
        }else{
            $ii=$i;
        }
        $date="$year-$m-$ii";
        //$date = date("Y-m-d", strtotime($date));
        if($i%3!=0){
            array_push($tmp,$date);

            if($i==60){
                if(count($tmp!=0)){
                    array_push($dates2,$tmp);
                }
            }

        }else{
            array_push($tmp,$date);
            array_push($dates2,$tmp);
            $tmp=array();
        }



        array_push($dates,$date);
    }

    ///print_r($dates2);


?>

<div class="row" style="border:1px solid silver; background: #a0a0a0;  padding: 15px 20px; color: white; ">
<div class="MultiCarousel" data-items="1,3,5,6" data-slide="1" id="MultiCarousel2"  data-interval="1000" >
                        <div class="MultiCarousel-inner">



                            <?php 
                    $cpt=0;

                    for($i=0; $i<count($dates2); $i++){

                        $line=$dates2[$i];

                        $today=date("Y-m-d");
                        if(empty($_GET["date"])){
                            $goto=$today;
                        if(in_array($today,$line)){
                            $active="active";


                        }else{
                            $active="";
                        }
                        }else{
                            $dt=$_GET["date"];
                            $goto=$dt;
                            if(in_array($dt,$line)){
                                $active="active";
                            }else{
                                $active="";
                            }
                        }





                            for($x=0; $x<count($line); $x++){

                                $el=$line[$x];
                                if(!empty($_GET["date"])){
                                    $dt=$_GET["date"];
                                    if($el==$dt){
                                        $color="red";
                                    }else{
                                        $color="white";
                                    }
                                }else{
                                if($el==$today){
                                    $color="red";
                                }else{
                                    $color="white";
                                }
                                }



                                $href="$page2?id_sport=$id_sport2&date=$el";
                                if($x==0){
                                    //echo "<div class='col-lg-1 col-xs-1'>&nbsp;</div>";
                                    //echo "<div class='col-lg-10 col-xs-10'>";

                                }

                                    /*echo ' <div class="col-md-4 col-xs-4 col-lg-4 ">
                                <a href="'.$href.'" class="btn btn-default " style="width:90%; font-size:11px; background-color:black; border:1px solid white; color:'.$color.';">'.$el.'</a></div>';
                                */
                                if($x==2){
                                    //echo "</div>";
                                }

                            ?>
                            <div class="item" style="text-align:center">
                                <a href="<?php echo $href; ?>" >
                                    <p class="sportName mydate p-date" style="color:white; font-size: 12px; text-align: center;" ><?php echo $el; ?></p>
                                </a>
                            </div>

                            <?php 

                            }


                    }
                    echo "<input type='hidden' value='$goto' id='cd'>";

                 ?>

                        </div>
                        <button class="btn btn-primary leftLst" style="border-radius: 0px;"><</button>
                        <button class="btn btn-primary rightLst fw" style="border-radius: 0px;">></button>
                    </div></div>

                    <script>
                        $(document).ready(function(){
                            var cd=$("#cd").val();
                            $(".mydate").each(function(){
                                var cd_tmp=$(this).text();
                                if(cd_tmp!=cd){
                                    //alert(cd_tmp+" is different from "+cd);


                                    //$(".fw").click();
                                }else{
                                    $(this).addClass("tag tag-danger");
                                    //break;
                                }
                            })
                        })
                    </script>

【问题讨论】:

  • 一旦通过此link 满足您的要求。你会得到你想要的
  • 你查了吗this
  • 你知道 if 小于 10 和 else.. 的那部分代码可以用 date("d") 完成

标签: javascript php jquery html css


【解决方案1】:

替换这部分代码:

<p class="sportName mydate p-date" style="color:white; font-size: 12px; text-align: center;" ><?php echo $el; ?></p>

收件人:

<p class="sportName mydate p-date" style="color:white; font-size: 12px; text-align: center;" >
  <?php 
    //echo $el;

    //convert date to month name
    $date = $el;
    $month_name =  ucfirst(strftime("%B", strtotime($date)));
    $day_number = ucfirst(strftime("%d", strtotime($date)));

    echo $month_name.' - '.$day_number;
  ?>
</p>

【讨论】:

  • 是的,您只需稍加改动即可做到这一点,将上述代码中的:%B 替换为:%b
【解决方案2】:

试试下面的代码,它应该可以帮助你。要获得完整的月份名称,您需要在括号内加上“F”。如果实际日期小于 10,我已删除在实际日期后面附加 0 的 IF 条件。

$page2=$_SERVER["PHP_SELF"];
$page2=explode("/",$page2);
$page2=$page2[count($page2)-1];

$id_sport2=$_GET["id_sport"];

$m=date("F");
$day=date("d");

$dates=array();
$dates2=array();
$tmp=array();
for($i=1;$i<32; $i++){

    $date="$m-$d";
    //$date = date("Y-m-d", strtotime($date));
    if($i%3!=0){
        array_push($tmp,$date);

//here you are checking if $i==60, but the maximum limit for $i is 32, what's the point of this check?

        if($i==60){
            if(count($tmp!=0)){
                array_push($dates2,$tmp);
            }
        }

    }else{
        array_push($tmp,$date);
        array_push($dates2,$tmp);
        $tmp=array();
    }



    array_push($dates,$date);
}

///print_r($dates2);

【讨论】:

    【解决方案3】:

    试试这个方法。将您的标头 php 代码更改为这个。

    <?php 
    
    $page2=$_SERVER["PHP_SELF"];
    $page2=explode("/",$page2);
    $page2=$page2[count($page2)-1];
    
    $id_sport2=$_GET["id_sport"];
    
    $m=date("m");
    $day=date("d");
    $year=date("Y");
    $dates=array();
    $dates2=array();
    $tmp=array();
    for($i=1;$i<32; $i++){
        if($i<10){
            $ii="0$i";
        }else{
            $ii=$i;
        }
        $monthObj = DateTime::createFromFormat('!m', $m);
        $monthName = $monthObj->format('F');
        $date="$monthName-$ii";
        if($i%3!=0){
            array_push($tmp,$date);
    
            if($i==60){
                if(count($tmp!=0)){
                    array_push($dates2,$tmp);
                }
            }
    
        }else{
            array_push($tmp,$date);
            array_push($dates2,$tmp);
            $tmp=array();
        }
    
    
    
        array_push($dates,$date);
    }
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-17
      • 2017-02-19
      • 2023-03-27
      • 1970-01-01
      • 2011-03-12
      • 2022-01-25
      相关资源
      最近更新 更多