PhP日期在选项中过期

时间:2014-02-11 08:04:01

标签: php function date options

<?php
function saturday22march(){
if(date('d-m-Y') <= '11-01-2014'){
 echo '<option>saturday 22 march</option>';
}else{
echo '';
}
}
function friday16may(){
if(date('d-m-Y') <= '17-04-2014'){
 echo 'friday 16 may';
} else{
echo '';
}
}
$Content= '
<div class="content">
I am signing up for the following date:<br />
<select name="date[0]">
'. saturday22march();
   friday16may() .'
</select>
</div>
';
echo $Content;
?>

这就是我想要的例子,如果它是3月23日,期权saturday22march不再是可变的/可用我怎么能这样做?


这是另一件我试图让它变得相同但其他明智的事情

function saturday22march(){
    $ret= "";
    if(time() <= strtotime('11-01-2014')){
     $ret =   'saturday 22 march';
    }
    return $ret;
}
function friday16mei(){
    $ret= "";
    if(time() <= strtotime('17-04-2014')){
     $ret =   'friday 16 mei';
    }
    return $ret;
}
function getoptions(){
    $ret = "";

    $saturday22 = saturday22march();
    if(strlen($saturday22) > 0){
        $ret = "<option>" . $saturday22 . "</option>";
    }

    $friday16mei = friday16mei();

    if(strlen($friday16mei) > 0){
        $ret = "<option>"    . $friday16mei . "</option>";
    }

    return $ret;
}
$Content= '
<div class="content">
    I am signing up for the following date:<br />
    <select name="date[0]">
        '. getoptions() .'
    </select>
</div>
';
echo $Content;

1 个答案:

答案 0 :(得分:0)

你应该转换另一种方式,字符串不是好的日期表示,它们之间的比较不会利用日期之间的真实关系(至少不在这个排序中,因为年份应该是最重要的一个)。更“正确”的方法是比较给定日期的unix时间戳。

而不是

if(date('d-m-Y') <= '11-01-2014'){

你应该使用

if(time() <= strtotime('11-01-2014')){