Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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_Datetime - Fatal编程技术网

如何在PHP中检查给定的时间字符串是否介于两次之间?

如何在PHP中检查给定的时间字符串是否介于两次之间?,php,datetime,Php,Datetime,我给了时间选择器来选择时间范围,用户可以分别选择开始时间和结束时间 开始时间:上午11:00结束时间:下午5:00 这是12小时格式,现在我想验证时间,比如开始时间应该大于12:00 AM,结束时间应该小于12:00 PM 11:59 PM 现在我有了这样的时间: if(strtotime($start_time) > strtotime('12:00 AM') && strtotime($end_time) < strtotime('11:59 PM')) {

我给了时间选择器来选择时间范围,用户可以分别选择开始时间和结束时间

开始时间:上午11:00结束时间:下午5:00

这是12小时格式,现在我想验证时间,比如开始时间应该大于12:00 AM,结束时间应该小于12:00 PM 11:59 PM

现在我有了这样的时间:

if(strtotime($start_time) > strtotime('12:00 AM') &&  strtotime($end_time) < strtotime('11:59 PM'))
{
  echo "Time Validated";
}
else
{
  echo "Time not validated";
}
    
$start_time="11:00 AM";
$end_time="05:00 PM";
$formatted_start_time = DateTime::createFromFormat('H:i a', $start_time);
$formatted_end_time = DateTime::createFromFormat('H:i a', $end_time);
$time1=DateTime::createFromFormat('H:i a', "12:00 AM");
$time2 =DateTime::createFromFormat('H:i a', "11:59 PM");

if($formatted_start_time > $time1
   &&  $formatted_end_time < $time2 )
{
  echo "Time Validated";
}
else
{
  echo "Time not validated";
}
您可以根据给定的格式创建DateTime类,并比较它们以验证时间

工作代码是 :

函数isValidTime$input,$start\u time=`12:00am,$end\u time=11:59pm,$format=h:ia{ $input\U date=\DateTime::createFromFormat$format,$input; $start\u date=\DateTime::createFromFormat$format,$start\u time; $end\u date=\DateTIme::createFromFormat$format,$end\u time;
return$start_date您必须使用DateTime::createFromFormat'H:i a',$time, 试着这样做:

if(strtotime($start_time) > strtotime('12:00 AM') &&  strtotime($end_time) < strtotime('11:59 PM'))
{
  echo "Time Validated";
}
else
{
  echo "Time not validated";
}
    
$start_time="11:00 AM";
$end_time="05:00 PM";
$formatted_start_time = DateTime::createFromFormat('H:i a', $start_time);
$formatted_end_time = DateTime::createFromFormat('H:i a', $end_time);
$time1=DateTime::createFromFormat('H:i a', "12:00 AM");
$time2 =DateTime::createFromFormat('H:i a', "11:59 PM");

if($formatted_start_time > $time1
   &&  $formatted_end_time < $time2 )
{
  echo "Time Validated";
}
else
{
  echo "Time not validated";
}

这回答了你的问题吗?@bravemaster:它没有解决我的问题,因为它是与当前时间比较的。我不清楚你的问题是什么。你展示了一些当前代码,但没有提到任何问题;你需要帮助的是它在做什么或不做什么?如果你解释一下这些代码是如何工作的,那将非常好。代码很好,但是如果你真的教我们一些东西并解释为什么这个解决方案有效,那就更好了