Php 如何将事件的日期/时间转换为可以使用的变量?

Php 如何将事件的日期/时间转换为可以使用的变量?,php,timestamp,Php,Timestamp,这段代码有效,但有一个例外。我正在从日历导入演出日期。当代码抓取下一个性能日期时,我希望它读取是在下午6点之前还是之后开始。如果是之前,我希望它今天说,如果是之后,我希望它今晚说。我尝试过使用$dateEventH,但它说我正在调用一个函数。如何将事件日期转换为可以使用的变量 function calendar_dates() { $servername = "localhost"; $username = "angelsdb"; $password = "R

这段代码有效,但有一个例外。我正在从日历导入演出日期。当代码抓取下一个性能日期时,我希望它读取是在下午6点之前还是之后开始。如果是之前,我希望它今天说,如果是之后,我希望它今晚说。我尝试过使用$dateEventH,但它说我正在调用一个函数。如何将事件日期转换为可以使用的变量

function calendar_dates() {  
    $servername = "localhost";  
    $username = "angelsdb";  
    $password = "R#start2013";  
    $dbname = "angelsice";  
    $fromToday = date("Y-m-d");

    /// Create connection  
    $conn = new mysqli($servername, $username, $password, $dbname);  
    // Check connection  
    if ($conn->connect_error) {  
            die("Connection failed: " . $conn->connect_error);  
    }  

    $sql = "SELECT event_start_date, recurrence_interval, event_name, post_content, event_start_time, event_slug, event_all_day FROM wp_em_events";  
    $result = $conn->query($sql);  

    if ($result->num_rows > 0) {  
        // output data of each row  
        while($row = $result->fetch_assoc()) {  
            $fromCalendar = $row["event_start_date"];  
            $dateEvent = new DateTime($fromCalendar);  
            $dateToday = new DateTime($fromToday);  
            if(strtotime($fromToday) <= strtotime($fromCalendar) && $row["recurrence_interval"] < 1){   
                if($dateToday == $dateEvent) {  

                /// THIS IS WHERE I WANT TO TEST IF IT IS BEFORE 6PM OR AFTER USING THE VARIABLE $GREETING

                $time = new DateTime($row["event_start_time"]);  
                echo "<h2>" . $greeting . " @ " . $time->format('h:i a') . "</h2>";  
                echo "<a href='../events/". $row['event_slug'] . "'><h1>" . $row["event_name"] . "</h1></a>";  
                echo "<h3>" . $row["post_content"] . "</h3>";  

                } else {  

                $date = $dateEvent;  

                $time = new DateTime($row["event_start_time"]);  
                echo "<h2>" . $date->format('l') . " @ " . $time->format('h:i a') . "</h2>";  
                echo "<a href='../events/". $row['event_slug'] . "'><h1>" . $row["event_name"] . "</h1></a>";  
                echo "<h3>" . $row["post_content"] . "</h3>";  

                }  
                return;  
                }  
            }  
    } else {  
           echo "0 results";  
    }  

    mysqli_close($conn);  
}  
试试这个

$dateEvent = "2011-07-26 20:05:00";//for example
$dateEvent = strtotime($dateEvent);
$time= date('H', $dateEvent);
if((int)$time>18)
    echo 'Tonight';
else 
    echo 'Today';
将日期与下午6点的日期时间进行比较,请参见


不。得到:警告:date期望参数2很长,第99行的/home/rowlandwilliams/public_html/angels/wp content/themes/Twentythird/functions.php中给出的对象$dateEvent中有什么?$dateEvent是从SQL中提取的,是日历事件发生的日期。废话!我的错误是我在拖延日期而不是时间。让我看看我能不能做到。在我的示例中,开始时间是23:00:00。到目前为止我犯的一个错误是它不能读冒号。我用引号写的,但这似乎不起作用。稍等。关于上述示例的快速问题:设置$dateEvent=dateh。。。但是我使用的日期不是当前日期,而是数据库中的日期。我该如何适应它?它是有效的!这是执行此操作的代码:$timeEvent=$row[event_start_time];IFNT$timeEvent
<?php

// your code goes here

$t1 = new DateTime("4:30pm");
$t2 = new DateTime("8:30pm");


function todayTonight($t) {
    return (new DateTime("6:00pm") < $t) ? "Tonight" : "Today";
}

echo todayTonight($t1) . "\n";
echo todayTonight($t2) . "\n";