Php 比较2个不工作的日期和时间

Php 比较2个不工作的日期和时间,php,Php,我将日期时间与今天的日期时间进行比较,以显示或不显示内容(如果是过去的日期)。我已经回答了这个问题,但没有成功 这是代码 function vacancy_expire($id, $close_date){ date_default_timezone_set("Pacific/Fiji"); $today = "2014-04-30 04:04"; $close_date = "2014-04-30 16:00"; if( $to

我将日期时间与今天的日期时间进行比较,以显示或不显示内容(如果是过去的日期)。我已经回答了这个问题,但没有成功

这是代码

function vacancy_expire($id, $close_date){
        date_default_timezone_set("Pacific/Fiji");

        $today = "2014-04-30 04:04";
        $close_date = "2014-04-30 16:00";
        if( $today > $close_date ){
           echo "1";
        } else {
           echo "0";
        }
}
function vacancy_expire($id, $close_date){
        date_default_timezone_set("Pacific/Fiji");
        $today = date("Y-m-d H:m");
        $close_date = trim($close_date);
    if( $today > $close_date ){
       return 0;
    } else {
       return 1;
    }
}

如果您按以下方式更改上述内容:

function vacancy_expire($id, $close_date) {
    date_default_timezone_set("Pacific/Fiji");

    $today = strtotime("2014-04-30 04:04");
    $close_date = strtotime("2014-04-30 16:00");
    if( $today > $close_date ){
       echo "1";
    } else {
       echo "0";
    }
}

我希望这会有所帮助。

您缺少strotime函数

函数中的$today&$close_date是一个字符串,需要转换为日期和时间

遵循以下步骤:

<?php

function vacancy_expire($id, $close_date){
    date_default_timezone_set("Pacific/Fiji");

    $today = time();

    $close_date = strtotime($close_date);

    if( $today > $close_date ){
        echo "1";
    } else {
        echo "0";
    }
}

vacancy_expire('someid', '2014-04-30 16:00');

这是最后的代码

function vacancy_expire($id, $close_date){
        date_default_timezone_set("Pacific/Fiji");

        $today = "2014-04-30 04:04";
        $close_date = "2014-04-30 16:00";
        if( $today > $close_date ){
           echo "1";
        } else {
           echo "0";
        }
}
function vacancy_expire($id, $close_date){
        date_default_timezone_set("Pacific/Fiji");
        $today = date("Y-m-d H:m");
        $close_date = trim($close_date);
    if( $today > $close_date ){
       return 0;
    } else {
       return 1;
    }
}

您的问题是您正在比较普通字符串。您需要将它们转换为时间戳并比较结果。更好的方法是,创建DateTime对象并进行比较:)好的,让我再试一次。我不理解针对报告问题提出的解决方案。正在向函数传递一个参数
$close\u date
,但忽略参数值。变量被设置为常量值。整个函数体可以替换为一行:“
echo“0”
”。为什么要在日期中添加

标记?您正在强制将$today和$close_date设置为字符串,甚至将其转换为无效的日期和时间错误,
本不应该出现。很高兴从答案中删除-1:)