Php 日期foreach数组
为什么这不起作用,它假设从当前日期所属的阵列日期中选择。因此,例如,如果日期是Php 日期foreach数组,php,Php,为什么这不起作用,它假设从当前日期所属的阵列日期中选择。因此,例如,如果日期是16-01-30,则选择的日期将是16-02-14谢谢您的帮助 <? $date = array('16-01-14','16-01-28','16-02-14','16-02-28'); $currentdate = date('y-m-d'); echo $currentdate; ?> <form> <select>
16-01-30
,则选择的日期将是16-02-14
谢谢您的帮助
<?
$date = array('16-01-14','16-01-28','16-02-14','16-02-28');
$currentdate = date('y-m-d');
echo $currentdate;
?>
<form>
<select>
<?php
foreach ($date as $i => $d) {
if ($currentdate >= $d && ($i == count($date)-1 || $currentdate < $date[$i+1])) {
$selected = "selected";
} else {
$selected = "";
}
list($year, $month, $day) = explode('-', $d);
echo "<option $selected>$month/$day/$year</option>";
}
?>
</select>
</form>
这是你的答案
$dates = array('16-01-14','16-01-28','16-02-14','16-02-28');
$currentdate = date('y-m-d');
echo $currentdate;
?>
<form>
<select>
<?php
foreach ($dates as $i => $d) {
if ($currentdate >= $d && ($i == count($dates)-1 || $currentdate < $dates[$i+1])) {
$selected = "selected";
} else {
$selected = "";
}
list($year, $month, $day) = explode('-', $d);
echo "<option $selected>$month/$day/$year</option>";
}
$dates=数组('16-01-14','16-01-28','16-02-14','16-02-28');
$currentdate=日期('y-m-d');
echo$currentdate;
?>
您需要使用strotime来比较日期。或者对变量使用DateTime类,如果当前日期为16-02-25,则选择16-02-28??或者只是一个打字错误$date还是$dates?@devpro如果当前日期是16-02-25,而选择的日期是16-02-2,那么你是什么意思?@LewisTyler:如果当前日期是16-02-12,那么你需要从数组中选择最后一个最晚的日期?我说的对吗?您使用的是$date
而不是$dates
。