如何仅在特定时间后显示变量

时间:2015-11-23 03:29:06

标签: php

<?php

ini_set('date.timezone', 'America/New_York');

require_once '../init.php';

$dates = ['2015/11/29 21:28:00'];

$tz = $_POST['tz'];

$timestamp = strtotime("+1week");

$one_week = date("Y/m/d G:i:s", $timestamp);

$key = array_search($one_week, $dates);


if($tz == 'est'){

  if(false !== $key){

    echo html_escape($dates[$key]);

  }

}elseif($tz == 'pst'){

   if(false !== $key){

    $old_date = strtotime($dates[$key]);

    $new_date = strtotime("-3 hour", $old_date);

    $date = date("Y/m/d G:i", $new_date);

    echo html_escape($date);

}

 }elseif($tz == 'cst'){

if(false !== $key){

    $old_date = strtotime($dates[$key]);

    $new_date = strtotime("-1 hour", $old_date);

    $date = date("Y/m/d G:i:s", $new_date);

    echo html_escape($date);

}

}elseif($tz = 'mst'){

  if(false !== $key){

    $old_date = strtotime($dates[$key]);

    $new_date = strtotime("-2 hour", $old_date);

    $date = date("Y/m/d G:i:s", $new_date);

    echo html_escape($date);

   }

}

?>

上面的代码正在做的是最终提供一个日期,根据哪个链接被按下,无论是est,pst,cst还是mst,通过ajax请求定时器,如果有匹配的话。匹配的唯一方法是,如果当前日期和时间+7天匹配数组中的值,但我意识到了一些事情......我把它做得严格。让我解释一下我的意思&#34;太严格&#34;。可以说在日期和时间的数组中有一个值2015/11/21 20:30:00,当前日期和时间是2015/11/21 20:30:01,上面的代码不会匹配。我需要知道的是如何允许上面的代码在20:30:00之后而不是之前进行匹配。我希望我解释得很好。

1 个答案:

答案 0 :(得分:0)

感谢Maxton给我一个提示。我终于得到了我想要的东西!!!! 我使用strtotime将当前日期和时间转换为时间戳,并将当前日期和特定时间转换为时间戳并进行整数比较。虽然仍然考虑到时区差异。

未来读者代码:

ini_set('date.timezone', 'America/Los_Angeles');

$cur_time = strtotime(date("Y/m/d G:i:s"));

$time = strtotime(date("Y/m/d 13:55:00"));

if($cur_time > $time){

    echo 'Yeah!!';

}else{

    echo "Boo!!";

}