如何使用循环函数获取日期月份年份


How to get date month year using loop function

我想制作一个函数,从中可以获得日期、月份、年份但我无法为此编写函数,我也不知道如何在下拉菜单中调用这些函数

例如

function get_date(){
        for($i=1;$i<31;$i++){?>
           <?php return '<option value="$i">  $i </option>';
       }

现在,如果我在选择菜单中调用它

<select >
 echo get_date();
</select>

它返回echo$我好心地指导我哪里出了问题

试试这个

 <?php
 function get_date()
  {
  $var="";
 for ($i = 1; $i < 31; $i++) {
    $num_padded=sprintf("%02d", $i);
    $var .='<option value="'.$i.'">  '.$num_padded.' </option>';
  }
 return $var;
}
?>
<select >
    <?php echo get_date(); ?>
</select>

这个月

<?php
 function get_month()
  {
   $var="";
   for ($m=1; $m<=12; $m++) {
     $var .= '<option value="'.$m.'">'.date('F', mktime(0,0,0,$m, 1,      date('Y'))).' </option>';
}
return $var;
}
?>
<select >
<?php echo get_month(); ?>
</select>

这是年度

<?php
function get_year($start,$end){
    $var="";
    while($start <= $end){
        $var .="<option value=".$start.">".$start."</option>";
        $start++;
    }
    return $var;
}
?>
<select >
    <?php echo get_year(1988,2000); ?>
</select>

在字符串中使用变量仅在使用双引号(")时有效。试试这个:

function get_date(){
    $dates = "";
    for($i=1;$i<31;$i++){
        $dates .= "<option value='$i'> $i </option>";
    }
    return $dates;
}

此外,在函数中不需要使用php标记。

要调用该函数,您需要将echo放在php标记之间

<select>
    <?php echo get_date(); ?>
</select>

创建一个包含所有选项的字符串,然后返回

function get_date(){
  $options = "";
  for($i=1;$i<31;$i++){
    $options .= "<option value='$i'>$i</option>";
  }
  return $options;
}

然后像这个一样打印

<select name="nameofdropdown" id="idofdropdown">
<?php echo get_date(); ?>
</select>

检查您的错误

  1. 如果返回,则立即返回并停止迭代。

  2. 单引号内的Php变量不会像'$i'那样求值,它必须是单qotes 内的"$i""'$i'"

  3. 使用php标记<?php ?>打印函数返回值。

尝试这个

function get_date(){
        $date = "";
        for($i=1;$i<31;$i++){              
           $date .=  '<option value="'.$i.'>'.$i.'</option>';                
        }
        return $date;
}

尝试

function get_date(){
    for($i=1;$i<31;$i++){?>
       <?php return '<option value="'.$i.'">  '.$i.' </option>';
   }