Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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,我试图比较两个时间:现在时间和完成时间 $finish\u time在$starting\u time之后+100分钟 我想在此时间添加if else:如果$now\u time大于$finitsh\u time结果echotrue,否则echofalse <?php date_default_timezone_set("Asia/Tehran"); $now_time = date("Y-m-d h:i:s"); $starting_time = "2020-0

我试图比较两个时间:现在时间和完成时间
$finish\u time
$starting\u time
之后+100分钟 我想在此时间添加if else:如果
$now\u time
大于
$finitsh\u time
结果echo
true
,否则echo
false

<?php
    date_default_timezone_set("Asia/Tehran");
    $now_time = date("Y-m-d h:i:s");

    $starting_time = "2020-02-08 20:30:00";
    $finish_time = strtotime("+100 minutes", strtotime($starting_time));

    $date1 = DateTime::createFromFormat('Y-m-d h:i:s', $now_time);
    $date2 = DateTime::createFromFormat('Y-m-d h:i:s', $finish_time);

    if($date1 < $date2){
        echo "True";
    } else {
        echo "False";
    }
?>

使用
DateTime
类,您可以稍微简化上面的代码:

date_default_timezone_set('Asia/Tehran');
$starting_time = '2020-02-08 20:30:00';


$start=new DateTime( $starting_time );
$end=new DateTime( date( 'Y-m-d H:i:s', strtotime( sprintf( '%s+100minutes', $start->format('y-m-d H:i:s') ) ) ) );

if( $start < $end )echo 'True';
else echo 'False';
date\u default\u timezone\u set(“亚洲/德黑兰”);
$starting_time='2020-02-08 20:30:00';
$start=新日期时间($starting\U time);
$end=newdatetime(日期('Y-m-dh:i:s',strottime(sprintf('%s+100分钟',$start->format('Y-m-dh:i:s')));
如果($start<$end)回显“True”;
否则回声“假”;

我更喜欢使用二进制格式,并且只对用户界面的输入和输出使用可打印日期。这使得编程更容易,代码也更高效——带有分解日期的计算需要大量时间

因此,我的解决方案是:

# not needed here
# date_default_timezone_set("Asia/Tehran");
# $now_time = time();

# This is the only text-to-bin conversion
$starting_time = strtotime("2020-02-08 20:30:00");
$finish_time = $starting_time + 100*60; // + 100 minutes

# differences and comparing binary times is very easy and efficient
if ( $starting_time < $finish_time ) {
    echo "True";
} else {
    echo "False";
}
#此处不需要
#日期默认时区设置(“亚洲/德黑兰”);
#$now_time=time();
#这是唯一的文本到仓位的转换
$starting_time=strottime(“2020-02-08 20:30:00”);
$finish_time=$starting_time+100*60;/+100分钟
#差异和比较二进制时间是非常容易和有效的
如果($开始时间<$完成时间){
呼应“真”;
}否则{
呼应“假”;
}

谢谢RamRaider。我现在在您的解决方案及其工作中添加了
,这能回答您的问题吗?是的,只是有点困惑