Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-日期比较建议_Php - Fatal编程技术网

PHP-日期比较建议

PHP-日期比较建议,php,Php,编辑:感谢您的回复,使用人们在这里提出的建议,我也浏览了与我相同的帖子,那里也有一些很好的建议,但我刚刚创建了另一个,因为我怀疑我的整个代码都不好,需要一些指针,我现在可以使用了,并将在下面分享我使用的代码: $today = date("d-m-y"); $expire = $_SESSION["expiration_date"]; $today_time = strtotime($today); $expire_time = strtotime($expire); if($expire_ti

编辑:感谢您的回复,使用人们在这里提出的建议,我也浏览了与我相同的帖子,那里也有一些很好的建议,但我刚刚创建了另一个,因为我怀疑我的整个代码都不好,需要一些指针,我现在可以使用了,并将在下面分享我使用的代码:

$today = date("d-m-y");
$expire = $_SESSION["expiration_date"];
$today_time = strtotime($today);
$expire_time = strtotime($expire);
if($expire_time < $today_time){
    $_SESSION = array();
    session_destroy();
    header("location: contact_us_expired.php");
    exit;
}

请保持冷静,并理解我是一个新手,这是我第一次真正尝试创建一些东西,CRUD系统似乎运行良好,但比较更加复杂。

如前所述,您正在比较字符串。PHP将从左到右逐个字符进行比较,直到第一个字符让他决定您的条件是真还是假

假设
$\u会话[“日期”]=“2020年1月1日”
$\u会话[“到期日”]=“2019年12月3日”

PHP将比较第一个字符
0
,看它们是否相等。然后将
1
3
对比。由于
1
小于
3
,他将假定
01/01/2020
小于
03/12/2019
,即使它不是

将日期转换为Datetime对象是一个很好的解决方案。另一种方法是将日期字符串转换为时间戳。PHP有以下内置函数来实现这一点:

请注意,如果要使用此解决方案,则必须使用以下任一项调整日期格式:

  • 使用格式
    YYYY-MM-DD
  • 如果要保留当前格式,请将斜杠替换为短划线
    d-m-y
    。然后,您的日期将被解析为您使用的欧洲格式
  • 此函数以整数形式返回自1970年1月1日以来经过的秒数。让您比较一个日期是大于还是小于另一个日期

    if(strtotime($_SESSION["date"]) < strtotime($_SESSION["expiration_date"])){
        $_SESSION = array();
        session_destroy();
        header("location: contact_us_expired.php");
        exit;
    }
    
    if(strotime($\u SESSION[“date”])
    if(new DateTime($\u SESSION[“date”])if(new DateTime($\u SESSION[“expiration\u date”])){?这是一种尝试的方法,谢谢,我会写下这里给出的两种解决方案,看看是否能让它起作用,谢谢你的帮助!好的,谢谢你,我会尝试一下,我想象日期被当作一个字符串,但不知道还可以尝试什么,我一尝试就会做出反应。
    $created_at = date("d/m/y");
    $expiration_date = date('d/m/y', strtotime('7 days'));
    
    if(strtotime($_SESSION["date"]) < strtotime($_SESSION["expiration_date"])){
        $_SESSION = array();
        session_destroy();
        header("location: contact_us_expired.php");
        exit;
    }