【问题标题】:How to add 3 drop down in single variable in php?如何在php中的单个变量中添加3个下拉菜单?
【发布时间】:2020-05-27 13:17:58
【问题描述】:

两天前,我作为一名 php 开发人员进行了一次面试,他们给了我一个任务来执行。 我完成了 90% 的任务,但在尝试将日期、月份和年份相加时失败了。

我有 3 个日期、月份和年份的下拉菜单:

Date Of Birth : <br />
Date : <select name="date">
            <?php $i=1; for($i=1; $i<=31; $i++){ ?> <option> <?php echo $i?> </option> <?php } ?>    
       </select>  
Month :  <select name="month">
            <option value="January">January</option>
            <option>Febuary</option>
            <option>March</option>
            <option>April</option>
            <option>May</option>
            <option>June</option>
            <option>July</option>
            <option>August</option>
            <option>September</option>
            <option>October</option>
            <option>November</option>
            <option>December</option>

        </select>
Year :    
<?php
    $currently_selected = date('Y'); 
    $earliest_year = 1950; 
    $latest_year = date('Y'); 

    print '<select name="year">';
    foreach ( range( $latest_year, $earliest_year ) as $i ) {
    print '<option value="'.$i.'"'.($i === $currently_selected ? ' selected="selected"' : '').'>'.$i.'</option>';
    }
    print '</select>';
?>

我的出生日期在数据库中只有一列。 我想将日期、月份和年份相加,结果如下:date/month/year。 我怎么能做到这一点?

if(isset($_POST['submit'])){
    $name = trim($_POST['username']);
    $date = $_POST['date'];
    $month = $_POST['month'];
    $year = $_POST['year'];

    if($name == ''){
        $error = "Add Name";
    }    

    $DateOfBirth = $date.'/'$month;

    if(!$error){
        echo $DateOfBirth;
    }
}

【问题讨论】:

  • 像这样更新代码。你不需要转换日期。您可以在存储在 DateOfBirth 变量中时进行更新。 $DateOfBirth = $date.'/'.$month.'/'.$date ; // 所有值都存储在 DateOfBirth 变量中。正如@Nipun Tharuksha 所说。谢谢
  • @JackTech 我认为如果您标记答案会很棒。

标签: php mysql database date add


【解决方案1】:

假设您的出生日期字段是 MySQL DATE 字段,您需要确保以正确的格式创建日期,即YYYY-MM-DD。您可以使用strtotime 将输入数据转换为时间戳,然后使用date 将其转换为适当的格式:

$DateOfBirth = date('Y-m-d', strtotime("$date $month $year"));

例如:

$year = 2015;
$month = 'August';
$date = 5;
$DateOfBirth = date('Y-m-d', strtotime("$date $month $year"));
echo $DateOfBirth;

输出:

2015-08-05

Demo on 3v4l.org

注意

如果您真的希望结果为dd/mm/yyyy 格式,只需将第一个输入从date 更改为'd/m/Y'

【讨论】:

    【解决方案2】:

    原因是您没有连接 php.ini 中的变量。检查下面的代码。你快到了,但编码错误很小。

    您要做的是将变量与字符串连接起来。所以你必须用'。'连接变量。然后添加你的字符串。在这里/ 用作字符串。添加字符串时,它应该用引号引起来 '/' 。最终的输出将是这样的。 $variable . '/'。现在连接另一个变量。那么它会是这样的。 $variable01 . '/' . $variable02.

     $DateOfBirth = $date.'/'.$month.'/'.$date ;
    

    输出

    12/02/2020
    

    根据您的要求检查添加的示例

    example

    【讨论】:

      猜你喜欢
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多