2016-06-14 44 views
1

我正在將時間戳傳遞給頁面。基本上我正在做的是在我的控制器中獲取當前時間,然後將其傳遞給視圖。但是我遇到的問題是,在視圖中呈現時間戳後,如果刷新頁面,我會得到不同的時間。那麼反正只有一次只顯示一個時間戳,不能通過加載頁面來改變?在此先感謝:如何在php或laravel中僅聲明一次timestamp?

這裏是我的代碼:

HomeController.php

public function orderingSubmissionReceipt() 
{ 
    date_default_timezone_set('MST7MDT'); 
    $currentDateTime = date("F j, Y H:i:s"); 

    return view('order-summary', [ 
     'currentDateTime' => $currentDateTime 
    ]); 
} 

訂單summary.blade.php

<div style="text-align: center;"><?php echo $currentDateTime ?></div> 
+1

保存它,只有當沒有設置 – Dale

回答

3

當然,使用會話:

if(!session('current_date_time')) { 
    session(['current_date_time', date("F j, Y H:i:s")]); 
} 

return view('order-summary', [ 
    'currentDateTime' => session('current_date_time') 
]); 

這將在第一次會話中設置當前日期時間,並從那裏開始使用相同的值。在會議

https://laravel.com/docs/5.1/session

+0

奏效,但在我註銷並再次登錄會話時間仍然是:

你可以閱讀更多關於Laravel的會話管理在這裏一樣。如何在登出後清除會話?謝謝! – progx

+0

您是否閱讀過我提供的Laravel文檔鏈接?你應該真的熟悉所有這些文檔。要回答你的問題,'session() - > flush()'將清除會話中的所有數據。或者當然你可以做'session() - > forget('current_date_time');'清除這個存儲的數據。 – Here2Help

+0

謝謝兄弟!我接受你的答案是正確的。 – progx