2017-04-13 30 views
1

我在我的頁面上獲得了一個在特定日期關閉的申請表單。然而,它會在特定的日期(即4月13日)剛剛結束,但我希望它在4月13日的14:00結束。我在WordPress中創建了一個下拉菜單(add_time),輸出字符串爲14:00。我怎樣才能在日期中添加這個數據,以便$ daysleft也包括那些增加的小時數?如何獲取日期並在其中添加'x'小時

有點像?

$addedTime = get_field('add_time'); 
$addedTime = strtotime ($addedTime); 
$daysleft = floor($datediff/(60*60*24)+$addedtime)) +1 <--- (not sure where to one is for) 

下面,如果完整的代碼,因爲它是目前

<?php 
    $now = time(); 
    $dueDate = get_field('due_date'); 
    $addedTime = get_field('add_time'); 
    $dueDate = strtotime($dueDate); 
    $datediff = $dueDate - $now; 
    $daysLeft = floor($datediff/(60*60*24))+1; 
    $daysLeft = intval($daysLeft); 
?> 
<?php 
    if($daysLeft == 0) { 
     echo 'Last day'; 
    } elseif($daysLeft < 0) { 
     echo 'Deadline passed'; 
    } elseif($daysLeft == 1) { 
     echo $daysLeft.' days left'; 
    } else { 
     echo $daysLeft.' days left'; 
    } 
?> 

回答

1

我首先的建議使用Carbon但你也可以使用標準的DateTime對象。

日期時間

$date = new DateTime('20-04-2017'); 
$date->add(new DateInterval('P1D')); 
echo $date->format('d-m-Y'); 

use Carbon\Carbon; 

$date = new Carbon::createFromFormat('d-m-Y','20-04-2017'); 
$nextDay = $date->addDay(); 
echo $nextDay->format('d-M-Y'); 

現在爲你的應用我會以下列方式使用碳:

$enddate = Carbon::createFromFormat('d-m-Y H:i:s','14-04-2017 14:00:00'); 
if(Carbon::now()->gte($enddate)) { 
    //Application ended code 
} 
else { 
    // application active code 
} 

如果您希望使用DateTime你可以做這樣的:

$enddate = new DateTime('2017-04-13 13:00:00'); 
$now = new DateTime('now'); 

$diff = $enddate->getTimestamp() - $now->getTimestamp(); 

if($diff >= 0) { 
    echo 'active'; 
} 
else { 
    echo 'inactive'; 
} 
0

對於日期和時間,更好的操作使用DateTime class

要在1小時內收到的時間,你可以使用下面的代碼:

$time = new DateTime(); 
$time->modify("+1 hour"); 
echo $time->format("Y-m-d H:i:s"); 

與該類您也可以比較日期

相關問題