如何在 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
根据您的要求检查添加的示例
假设您的出生日期字段是 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
备注
如果您真的想要结果是dd/mm/yyyy
格式,只需将第一个输入date
更改为'd/m/Y'
。
两天前,我作为 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
根据您的要求检查添加的示例
假设您的出生日期字段是 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
备注
如果您真的想要结果是dd/mm/yyyy
格式,只需将第一个输入date
更改为'd/m/Y'
。