2014-03-12 62 views
0

我要保存使用laravel 4日的日期,我一直在寻找互联网,但只有很好的解决方案,我发现用Laravel 4节省数据库

$start_at = date("Y-m-d", strtotime($start_at)); 

,但我相信,这是一种Isaac Newton xd使用的古代代码,如果我想检索它,我需要再次使用。 在手册中,我找到了“可变保护$日期=数组('My_date','Another_date');”或者使用“公共职能getDates()”,http://laravel.com/docs/eloquent#date-mutators我甚至改变文件Model.php,但我有这个错误的所有时间“发现意外的数据。发现意外的数据。数据丢失”

class Insurance extends Eloquent { 
    protected $table = 'insurance'; 
    protected $dates = array('start_at', 'end_at'); 
    public $timestamps = false; 
    protected $primaryKey = 'id_insurance'; 
    protected $fillable = array (
      'id_vehicle', 
      'start_at', 
      'end_at' 
    ); 

    public function getDates() 
    { 
     return array('start_at', 'end_at'); 
    } 
} 
+0

PHP有一个很棒的[DateTime](http://php.net/datetime)类。只需将'$ start_at'放入构造函数(如果它被strtotime正确解析)并将其格式化为以后的样子。 – Mike

+1

你想保存一个特定的日期还是你想要约会?如果将字段添加到getDates Eloquent将DATETIME/TIMESTAMP字段创建为Carbon对象(它是DateTime类的扩展),那么获取日期即可使用。 – Bram

+1

我想将它保存在数据库中,我想要的是设置一个列日期 – user3369524

回答

1

我会建议使用PHP库的Carbon库。

将您的列类型设置为数据库中的日期。 (mySql允许)。

如果在窗体中有输入从而使该日期的不同部分,如年,月,日,您可以创建输入要插入的

Carbon::createFromDate(  
$dateOfBirth['year'],  
$dateOfBirth['month'], 
$dateOfBirth['date'])->toDateString(); 

这可以被插入到你的雄辩模型。