2017-08-12 9 views
0

私はACFフィールドを使用して、次のイベントのカウントダウンをクライアントがコンテンツ管理できるようにしています。私はデスクトップ版でJSフリップクロックを使用していますが、応答しないので、date diffを使用してモバイルの日数。日付差分関数で変数を使用するにはどうすればよいですか?

サイトは現在、私が現在持っているコードはこれです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

ような差RMAT 'date_diff'は数が、[' DateInterval'オブジェクト(http://php.net/manual/en/datetime.diff.php#refsect1-datetimeを返しません.diff-returnvalues)。 if文の前後で '$ difference'の値をチェックしましたか? – rickdenhaan

答えて

1

からコードを引っ張っthe_field('mobile_date')が返す関数(日付またはタイムスタンプのいずれか)を知っていれば、その特定の行を下に変更する必要があるかもしれませんが、DateTimeオブジェクトとfoこの

$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

ありがとうございます、それは私にもう少しですが、そこにはかなりありません。 2017-09-08まで17392日を返します。関数が時間や分を返す場合には60と24で割ってみましたが、それはうまくいきません。 関数 'the_field( 'mobile_date')は、データベースからカスタムフィールドをエコーアウトします。私はこれを 'get_field( 'mobile_date')'に変更しました。単純にフィールドをソートしました。 mobile_dateは現在テキストフィールドとして設定されています。 –

+0

'the_field( 'mobile_date')の出力はどうですか? – RamRaider

+0

2017-08-17出力としてページをエコーし​​てコピー/貼り付けしました。 –

関連する問題