【问题标题】:compare 2 time in php在php中比较2次
【发布时间】:2013-03-14 05:07:45
【问题描述】:

我需要比较事件的开始和结束时间,然后再将它们存储在我的数据库中。事件日期和时间大于或等于当前时间,然后我才将它们存储在数据库中

我正在使用以下代码来比较时间和日期。但它不起作用。有什么方法可以比较这些时间吗?

$date = date("m/d/Y");
$dates = $_POST['date'];
$time = date("g:i:a");
$time1 = $_POST['time'];
$meridiem = $_POST['meridiem'];
$c_time = $time1.':'.$meridiem; //eg: 1:00:am
if(($dates >= $date) && (strtotime($c_time) > strtotime($time))){
//block of code
}

【问题讨论】:

  • 1:00:am 不是有效的时间格式。试试1:00 am
  • @user2164054 $dates ... 是什么? $_POST['time'] 和 $_POST['merdiem']..... 的格式是什么?
  • 如果这是完整的代码,这个 if 总是会失败。除了@AshwiniAgarwal 的建议之外,还有另一个问题是$dates 没有在任何地方定义。因此$dates >=$date 永远是假的
  • $time = date("g:i:a"); 的结果是这种格式 1:00:am

标签: php datetime compare


【解决方案1】:

确保$_POST['time']; 为您提供类似于m/d/Y 的结果,而$_POST['meridiem']; 为您提供类似于g:i a 的结果(凌晨1:00)。 由于strtotime() 函数,代码在开始时不起作用。它可能无法识别您的字符串是否为日期。

$date = date("m/d/Y");
$time = date("g:i a");
$time1 = $_POST['time'];
$meridiem = $_POST['meridiem'];
$c_time = $time1.' '.$meridiem; //eg: 1:00 am
if(($dates >= $date) && (strtotime($c_time) > strtotime($time))){
//block of code
}

此外,您没有在查询中定义$dates。您可以定义如下以使您的代码正常工作:

$dates = date('m/d/Y g:i a');

【讨论】:

  • $dates 也需要在某个地方定义。
猜你喜欢
  • 2011-06-23
  • 1970-01-01
  • 2011-03-17
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多