もくじ
invalid date
タイムスタンプを日付に変更しようと試みていた時のことです。
ものによってきちんと日付に変換されるデータもあればinvalid date
となってしまいデータが表示されないものがあるという現象にでくわしました。
型を確認
データを更新したタイミングで型が変わってしまうこともあるので、今回はそのタイミングで起こりました。
下のstring
となっているデータが、更新したデータです。
タイプを確認する関数があるのでそれを使いましょう。
gettype(型を調べたい値)
$hoge = 123; $foo = "123"; echo gettype($hoge); // 結果:integer echo gettype($foo); // 結果:string
typeof(型を調べたい値)
var hoge = 123; var foo = "123"; const A = typeof(hoge); const B = typeof(foo); console.log(A); // 結果:number console.log(B); // 結果:string
実際、invalid date
となっている値の型を見てみると、string
となっており、integer
型のものはきちんとタイムスタンプとして認識してくれているので日付が表示されていたことがわかります。
意識しないと忘れがちな“型”
気づくのに1時間ほどかかってしまいましたが、気づいてしまえば単純な原因だったりします。
型を意識しておけば、エラーにぶちあたったときに解決の糸口になるかもしれませんね。
参考URL
Display blank instead of "Invalid date" for a date column. — DataTables forums