2014-11-06 132 views
2

我成功地使用了這段代碼,但有沒有辦法運行這個我不需要將我的變量從一個字符串轉換爲數字?爲什麼我需要使用strtotime()來使用date()和mysql

我很困惑,想知道我是否有效地做,因爲MySQL時間戳數據類型是一個字符串,但PHP時間戳是一個數字。應該有一個日期格式轉換爲MySQL時間戳,不是?

date(DATE_ATOM, strtotime($program->start_time)) 

date函數需要一個時間戳long數據類型,但mysql以datetime字符串格式存儲時間戳。有沒有另一種方法來做到這一點,我只轉換一次?

+1

是的,存儲日期作爲時間戳開始 – 2014-11-06 16:21:31

+0

我已經存儲它作爲時間戳。時間戳格式是mysql中的一個字符串嗎?但是php date()期望時間戳是一個數字。 – Phil 2014-11-06 16:35:39

+0

如果您將其作爲時間戳存儲並將其作爲時間戳記拉出,然後嘗試從時間戳記中創建時間戳記,則strtotime函數將返回false,並且date()函數將不起作用。 – 2014-11-06 16:38:55

回答

0

我不知道爲什麼你需要改變你的代碼中的日期。

Laravel基地模型,日期作品Carbon對象。當這些字段存儲在數據庫中時,它們會被變爲數據庫日期格式。這是因爲日期字段在基本模型中擁有他們的getter/setter。

您不需要更改自定義日期字段格式,只需在$dates Model屬性中聲明它們,以便它們可以在字段存儲在數據庫中時進行變異。

例如,在此用戶模型類中,屬性start_time將在保存時從Carbon變爲MySQL格式。

Class User extends Eloquent 
{ 
    protected $dates = ['start_time']; 
} 

你可以閱讀更多有關在這裏http://laravel.com/docs/4.2/eloquent#date-mutators

我希望這將有助於你更好地理解它。

相關問題