2017-08-12 65 views
0

我正在使用ACF字段,以允許客戶端內容管理倒計時到他們的下一個事件我在桌面版本上使用JS翻轉時鐘,但因爲它沒有響應,我決定使用日期差異來回顯出只是移動的天數。如何在日期差異函數中使用變量?

該網站是目前住在theindustrialproject.co.uk

我目前擁有的代碼是這樣的:

<?php 
    $date1 = date_create(date()); 
    $date2 = date_create(the_field('mobile_date')); 
    $diff = date_diff($date1,$date2); 

    $difference = $diff; 

    if ($difference < 0) { $difference = 0; } 
    echo '<span class="countdown-mobile">'. floor($difference/60/60/24)."</span><br />"; 
    if ($difference == 1) { echo "<p>Day</p>"; } 
     else { echo "<p>Days</p>"; } 
?> 

但它總是返回0作爲參考,我把代碼here

+2

差'date_diff'不返回一個數,但['DateInterval'對象(http://php.net/manual/en/datetime.diff.php#refsect1-datetime爲.diff-returnvalues)。你有沒有檢查'$差異'的價值之前和之後,如果 - 聲明你強迫它爲0? – rickdenhaan

回答

1

無知道函數the_field('mobile_date')將返回(日期或時間戳?),您可能需要更改下面的特定行,但您應該能夠使用DateTime對象,並且fo RMAT這樣

$format='Y-m-d'; 
$timezone=new DateTimeZone('Europe/London'); 

/* We need 2 datetime objects - one for now the other for the future date */ 
$now=new DateTime(date($format, strtotime('now')), $timezone); 
$target=new DateTime(the_field('mobile_date'), $timezone); 

/* Format the difference in days */ 
$days = $now->diff($target)->days; 

echo "<span class='countdown-mobile'>{$days}</span><br />" . ($days == 1 ? '<p>Day</p>' : '<p>Days</p>'); 
+0

謝謝,這讓我有點進一步,但不是那裏。它將返回17392天,直到2017-09-08。我已經嘗試了除以60和24以防函數返回小時或分鐘,但這並不完全正常。 函數'the_field('mobile_date')'從數據庫中回顯出一個自定義字段。我已經將此更改爲'get_field('mobile_date')',因爲它只是對字段進行排序。 mobile_date當前設置爲文本字段。 –

+0

請'the_field('mobile_date')'的輸出是什麼? – RamRaider

+0

2017-08-17回覆到頁面並複製/粘貼輸出 –