如何在 php 中的单个变量中添加 3 个下拉列表?

How to add 3 drop down in single variable in php?

两天前,我作为 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;
    }
}

原因是您没有连接 php 中的变量。检查下面的代码。你几乎就在那里,但有一个小的编码错误。

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

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

输出

12/02/2020

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

example

假设您的出生日期字段是 MySQL DATE 字段,您需要确保以正确的格式创建日期,即 YYYY-MM-DD。您可以通过使用 strtotime to convert your input data into a timestamp, and then 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'