2017-10-18 277 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)