为什么我需要使用strtotime()来使用mysql的date()

时间:2014-11-06 16:20:00

标签: php laravel

我正在成功使用此代码,但有没有办法在不需要将变量从字符串转换为数字的情况下运行此代码?

我很困惑,想知道我是否有效地执行它,因为mysql timestamp数据类型是一个字符串,但php时间戳是一个数字。应该有一个mysql时间戳的日期格式转换,没有?

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

date函数采用timestamp long数据类型,但mysql以datetime字符串格式存储时间戳。还有另一种方法可以做到这一点,我只转换一次吗?

1 个答案:

答案 0 :(得分:0)

我不知道您为什么需要更改代码中的日期。

Laravel基础模型中,日期用作Carbon个对象。当这些字段存储在数据库中时,它们会变异为数据库日期格式。这是因为日期字段在基本模型中拥有其拥有的getter / setter。

您不需要更改自定义日期字段格式,只需在$dates模型属性中声明它们,以便它们在存储在数据库中时可以改变这些字段。

例如,在此User模型类中,属性start_time将在保存时从Carbon变为MySQL格式。

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

您可以在此处详细了解http://laravel.com/docs/4.2/eloquent#date-mutators

我希望这会帮助你更好地理解它。