2017-10-18 190 views
0

在我们的laravel迁移中,我们插入了应用程序(国家,货币等)所需的静态数据。laravel 5.4,如何插入时间戳(mysql)

我们试图插入带有时间戳字段的行,但无法弄清楚如何将其设置为指定的日期/时间。

我们试图时间(),并设置一个标准的日期格式,e.g:

DB::table('test')->insert(['id'=>1,'start_at'=>time(), 'end_at'=>'2050-01-01 00:00:00']); 

两个时间戳列结束了0000-00-00 00:00:00。

任何想法?

+0

与碳'start_at'=> tCarbon尝试::现在()'不要忘记在顶部添加'使用Carbon \ Carbon' :) – Maraboc

回答

1

time()返回一个Unix时间戳,但MySQL想要一个YYYY-mm-dd HH:ii:ss时间戳。您可以使用例如date('Y-m-d H:i:s')或试用Carbon

顺便说一下,您还有一个缺失'start_at之前。

0

OK,我发现

$now= new DateTime; 
$future = $now->add(new DateInterval('P20Y')); 
DB::table('test')->insert(['id'=>1,'start_at'=>$now, 'end_at'=>$future]); 
0

一个解决方案(由Joel &给定的碳期权Maraboc可能会更好)与 碳:

$dt = Carbon::parse('2012-9-5 23:26:11'); 
var_dump($dt->timestamp);  //int(1346901971)