簡単な解決策
2012-11-21 19:00:00
フォーマットなしで表示できるとのことです。
したがって、任意の $date を 2012-11-21 19:00:00 として表示できる場合は、単に部分文字列にしないでください:
$dateToDisplay = substr($date, 0, 11).'at '.substr($date, 11, 8);
$dateToDisplay as を表示し2012-11-21 at 19:00:00
ます。
もう少し...
$data[0]->dinExpiry の出力を知らずにこれに答えるのは難しいです。($date という変数が得られると仮定します)。
@Marc B が言うように、1970 を取得しているという事実は、それが有効なタイムスタンプではないことを示しているため(ヒント: 文字列です)、Unix エポック (1970 年 1 月 1 日 00:00: 00 グリニッジ標準時)。
次のように有効なタイムスタンプに変換できます。
$expiryDate = date('Y-m-d', strtotime($date));
またはあなたの例に合わせて:
$expiryDate = date('Y-m-d', strtotime($data[0]->dinExpiry));
$expiryTime = date('H:i', strtotime($data[0]->dinExpiry));