2017-08-28 26 views
0

比較兩個日期我有兩個日期在list.blade.php比較喜歡在blade.php文件

如果今天的日期是大於或等於到期日再去做別的事情做一些事情。

這裏是代碼:

@php 
use Carbon\Carbon; 
$today_date = Carbon::today(); 
@endphp 

@foreach ($entries as $k => $entry) 
@if($today_date >= $entry->expire_date) 
// do something 
@else 
// do something 
@endif 
@endforeach 

日期格式:YYYY-MM-DD

但是,這是行不通的。

請幫

感謝

編輯:

我嘗試這樣做:

<?php 
    use Carbon\Carbon; 
    $today_date = Carbon::now(); 

    foreach ($entries as $k => $entry) { 
     $expire_date = Carbon::createFromFormat('Y-m-d', $entry->expire_date); 
    } 
?> 

,這讓我的錯誤,如: image

還有一件事expire_date是我的數據庫中的文本類型,所以這可能是問題。

+0

是在數據庫中的日期時間格式的EXPIRE_DATE?它在你的控制器中被標記爲時間戳嗎? – aynber

+0

否expire_date是文本。 –

+0

如何在刀片文件中將expire_date轉換爲日期。你可以幫助一點 –

回答

0
@php 
    use Carbon\Carbon; 
    $today_date = Carbon::now(); 

    foreach ($entries as $k => $entry) { 
     $expire_date = Carbon::createFromFormat('Y-m-d', $entry->expire_date); 
     $data_difference = $today_date->diffInDays($expire_date, false); //false param 

     if($data_difference > 0) { 
      //not expired 
     } 
     elseif($data_difference < 0) { 
      //expired 
     } else { 
      //today 
     } 
    } 

@endphp 

false參數是可選的,並表示,如果你想返回值是絕對值或可能有一個相對值 - (負)符號,如果日期傳遞小於當前實例。這將默認爲true,返回絕對值。

More here

+0

如果我想使用這個data_difference它是忽略' - '符號,同時計算兩個日期之間的差異。所以if條件不起作用。 –

+0

更新了代碼,現在檢查。 –

+0

謝謝您,先生,我不能滿足您的答案,因爲我的聲譽不足以做到這一點,但那非常有幫助。 –

0

使用此=>碳:: now();

並將格式設置爲格式(YYYY-MM-DD)。將該日期存儲在var中,並將該var與過期日期進行比較。

您的today_date格式存在問題。

today_date給出日期和時間。

+0

我試過碳::現在但沒有成功,請您詳細說明您的答案的第二部分,並以示例的形式說明我無法獲得您的意見,當您說today_date –

+0

$ today_date-> format('YYYY-MM-DD') 的格式使用$ today_date。確保這兩個日期的甲酸鹽是相同的。 –

0

由於expire_date是文本,因此您需要將其轉換。幸運的是,與Carbon,這很容易做到:

$expire_date = Carbon::createFromFormat('Y-m-d', $entry->expire_date); 

然後你可以用它來compare

@if($today_date->gte($expire_date)) 

您可能希望確保$expire_date不爲空,不先拋出任何錯誤。如果您將日期作爲日期或日期時間列存儲在數據庫中,以確保其始終採用正確的格式,並且還可以將其作爲時間戳添加到模型中,或者將Carbon應用爲accessor function

+0

這個$ expire_date可以在刀片文件的php標籤之外訪問嗎? –

+0

是的,只要您將其設置在刀片文件中即可。否則,您可以在控制器或具有存取器功能的模型中轉換它。 – aynber

+0

你想讓我試試這個嗎? ' @php use Carbon \ Carbon; $ today_date = Carbon :: now(); @endphp @foreach($ entries as $ k => $ entry) $ expire_date = Carbon :: createFromFormat('Y-m-d',$ entry-> expire_date); @if($ today_date-> GTE($ EXPIRE_DATE)) //做一些 @else //做點什麼 @endif @endforeach –

0

您需要首先進行格式化您的增碳日期對象以匹配您的數據庫數據的日期(字符串)值。

@if($today_date->format("Y-m-d") >= $entry->expire_date) 

它被打印,因爲你的PHP標籤錯誤..失蹤「?」,應該是<?PHP

+0

這是正確的嗎? '@php 使用Carbon \ Carbon; $ today_date = Carbon :: now(); @foreach($ entries as $ k => $ entry) $ expire_date = Carbon :: createFromFormat('Y-m-d',$ entry-> expire_date); $ data_difference = $ expire_date-> diffInDays($ today_date); @endforeach @endphp' –

相關問題