如何在PHP中检查当前时间和数据库时间是否相等
我试图在如何在PHP中检查当前时间和数据库时间是否相等,php,datetime,if-statement,timezone,Php,Datetime,If Statement,Timezone,我试图在PHP中比较两次。我从Mysql获取时间并将其存储在记事本中,如 21:30 22:00 22:30 然后我从文件中读取时间并将其存储在数组中 $myfile = file('Scheduled_data.txt'); $time_array = array(); // store into array foreach ($myfile as $line) { $line_array = explode("\t", $line); $time_
PHP
中比较两次。我从Mysql
获取时间并将其存储在记事本中,如
- 21:30
- 22:00
- 22:30
文件中读取时间
并将其存储在数组中
$myfile = file('Scheduled_data.txt');
$time_array = array();
// store into array
foreach ($myfile as $line) {
$line_array = explode("\t", $line);
$time_array[] = $line_array[0];
}
//looping array
for ($i = 0; $i < count($time_array); $i++) {
$timezone = new DateTime("now", new DateTimeZone('Asia/Kolkata') );
$current_time=$timezone->format('H:i');
echo $time_array[$i]; //ex: first data 21:30
echo "\t";
echo $current_time; // 21:30
if($time_array == $current_time)
{
echo "yes"; // not moving inside if cond
}
}
注意这两种类型都是字符串,尝试使用==
进行比较仍然没有用。但是,您所做的不是最佳做法,而是在以下情况下比较数组和字符串时犯了错误:
if($time_array == $current_time)
{
echo "yes"; // not moving inside if cond
}
解决方案
您需要用$current\u time
检查$time\u数组的$i
第四个索引,如下所示:
if(strtotime($time_array[$i]) == strtotime($current_time))
{
echo "yes"; // not moving inside if cond
}
因此:
最好使用来比较:
$myfile = file('Scheduled_data.txt');
$time_array = array();
// store into array
foreach ($myfile as $line) {
$line_array = explode("\t", $line);
$time_array[] = $line_array[0];
}
//looping array
for ($i = 0; $i < count($time_array); $i++) {
$timezone = new DateTime("now", new DateTimeZone('Asia/Kolkata') );
$current_time=$timezone->format('H:i');
echo $time_array[$i]; //ex: first data 21:30
echo "\n\r";
echo $current_time; // 21:30
if(strtotime($time_array[$i]) == strtotime($current_time)){
echo "yes"; // not moving inside if cond
}
}
$myfile=file('Scheduled_data.txt');
$time_array=array();
//存储到数组中
foreach($myfile作为$line){
$line\u数组=分解(“\t”,$line);
$time_array[]=$line_array[0];
}
//循环阵列
对于($i=0;$iformat('H:i');
echo$time_数组[$i];//例如:第一个数据21:30
回显“\n\r”;
echo$current_time;//21:30
if(strottime($time_数组[$i])==strottime($current_时间)){
回显“是”;//如果条件允许,则不在内部移动
}
}
通知
顺便说一下,最好使用==
运算符比较两个变量,因为它将检查它们的类型进行比较,您需要使用PHP strotime
以毫秒为单位转换这两个时间
如果出现
状况,只需更换
if($time_array[$i] == $current_time)
{
echo "yes"; // not moving inside if cond
}
if(strtotime($time_array[$i]) == strtotime($current_time))
{
echo "yes"; // not moving inside if cond
}
您可以使用PHP DATE()
函数来尝试下面的代码,而不是使用DateTime类
for ($i = 0; $i<count($time_array); $i++)
{
date_default_timezone_set('Asia/Kolkata');
if(strtotime($time_array[$i]) == strtotime(date('H:i')))
{
echo "yes"; // not moving inside if cond
}
}
for($i=0;$i)您正在将$time\u数组放入if
语句中,该语句是一个数组。您需要放入$time\u数组[$i]
抱歉,我只尝试了这个,但没有进去,如果cond@ManishPareekvar\u dump
这两个$time\u数组[$i]
和$current\u-time
,并检查结果'13:33'(长度=6)‘13:40’(长度=5)我得到这个第一个13:33是从db@AnuPriya你第一次就得到了一个空格。只是修剪和比较一下。rry我只尝试了这个,但没有进去,如果cond,并且尝试了比较使用===仍然没有用@Akinak