2017-10-18 36 views
0

Dans nos migrations laravel, nous insérons les données statiques qui sont requises par l'application (pays, devises, etc.).laravel 5.4, comment insérer un timestamp (mysql)

Nous essayons d'insérer une ligne avec un champ d'horodatage, mais je n'arrive pas à comprendre comment le régler sur un jour/heure spécifique.

Nous avons essayé le temps() et définir un format de date standard, par exemple:

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

Les deux colonnes d'horodatage finissent avec 0:00:00 0000-00-00.

Des idées?

+0

Essayez avec Carbon 'start_at '=> tCarbon :: maintenant() 'ne pas oublier d'ajouter' use Carbon \ Carbon' en haut :) – Maraboc

Répondre

1

time() renvoie un horodatage Unix, mais MySQL souhaite un horodatage HH: ii: ss YYYY-mm-dd. Vous pouvez utiliser par exemple date('Y-m-d H:i:s') ou essayez Carbon. Par ailleurs, il vous manque également un 'start_at.

0

OK, j'ai trouvé une solution (option carbone donnée par Joel & Maraboc pourrait être mieux)

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

avec Carbon:

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