如何检查两个字符串是否相等?

时间:2015-08-06 21:06:50

标签: php equality

我需要一些关于代码的帮助,我在检查两个不同的字符串时遇到问题,因为我想检查变量$program_times中的字符串是否等于PM和{{1} }等于$next_program_times。当我尝试它时,它什么都不显示,它根本不会做任何事情。

当我尝试这个时:

AM

我也试过这个:

if(strpos($program_times, 'PM') !== false && strpos($next_program_times, 'AM') !== false) 
{
  echo 'hello 4';
}

以下是完整代码:

if (strpos($next_program_times, 'AM') !== false) 
{
  echo 'hello 3';
}

这是输出:

for ($jj = 1; $jj <= 113; $jj++)
{
  $program_title = $html->find("li[id=row$ii-$jj]", 0)->plaintext; // with this
  $program_title = preg_split("/ {6,}/",$program_title);
  $program_times = $program_title[1];

  if (!empty($program_titles)) 
  {
    $program_times = (new Datetime($program_times))->add(new DateInterval('PT5H'))->format('g:i A');
    echo '<span id="time', $show_id, '">', $program_times, '</span> ', '<span id="title', $show_id, '">', $program_titles, $program_bbf, $program_cat, '</span> <br></br>';

    $next_program_times = $program_times + 1;

    if (strpos($next_program_times, 'AM') !== false) 
    {
      echo 'hello 3';
    }


    if(strpos($program_times, 'PM') !== false && strpos($next_program_times, 'AM') !== false) 
    {
      echo 'hello 4';
    }

你能否告诉我一个例子,说明如何在我做某事之前检查10:00 PM Reba - To Tell the Truth 10:30 PM Reba - Brock's Mulligan 11:00 PM Job or No Job - Chicago Restaurants 12:00 AM Bruce Almighty 2:00 AM 17 Again 4:00 AM The 700 Club 5:00 AM Beetlejuice 7:00 AM Sexy in 3 Weeks! 7:30 AM Paid Programming 8:00 AM The 700 Club PM之间的字符串?

2 个答案:

答案 0 :(得分:1)

您的问题出在代码的主要逻辑中。你是从这个中提取的:

  

凌晨12点布鲁斯全能

字符串的第一部分,您尝试检查它是否包含&#39; AM&#39;或者&#39; PM&#39;。由于您正在提取时间,您可以将其转换为日期php对象,而不是将其作为字符串处理。这样,如果$next_program_times处于上午或下午时段,您也会得到。 当您尝试将+1添加到&lt; 12:00 AM&#39;你没有得到&#39; PM PM&#39;! 所以我将字符串转换为日期对象,如下所示:

$program_times = strtotime($program_times);
$refer_time = strtotime('01:00 PM');
if($program_times<$refer_time){
    //we are in the AM range
}else{
    //we are in the PM range
}

这假设您只考虑24小时范围,以便您评估的所有时间都指向同一天。 对于$next_program_times我也可以采用不同的方法:

$next_program_times = strtotime($program_times)+3600;

然后你可以再次使用相同的if:

if($next_program_times<$refer_time){
    //we are in the AM range
}else{
    //we are in the PM range
}

请注意,我对时间(AM / PM)的子午线表示不太熟悉,所以也许我没有在$refer_time值中使用PM的第一个值。

您可以找到有关php strtotime function here的更多信息。

答案 1 :(得分:-1)

要进行比较,您可以写:

if ($program_times == "PM")

此外,strpos返回第一次出现的字符串的位置而不是布尔值