0

URL からの日付と時刻は、YYYY-MM-DD-HH-II-SS の形式である必要があります。正当性を確認し、mysql タイムスタンプ形式の列にデータベースに挿入したい。

1) と$timestamp = $this->input->get('time_from')URLから受け取る。

2)データベースに挿入する前に、印刷しようとしました。

 if (! empty($timestamp)) {
        $timestamp = date_create_from_format('Y-m-d-H-i-s', $timestamp);
        if (! $timestamp)
            echo date_format($timestamp, 'Y-m-d H:i:s');
     }

3) 私はその年が 1970 年より前である可能性があることを取得しました。たとえば、1950-01-01-10-32-01 はこのチェックで正しいです。しかし、そのような日付を mysql 列に挿入することはできません。4) 2012-02-31-10-00-00 が 2012-03-02 10:00:00 に自動的に変換されることがわかりました。

問題は、これらの紛らわしい自動変換をどのように回避するかです。そのようなチェックを提供する最良の方法は何ですか?

4

1 に答える 1

1

1970 年より前の日付を MySQL の TIMESTAMP 列に格納することはできません。代わりに DATETIME を使用してください。http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

checkdate()関数を使用して、日付が有効かどうかを確認できます。

于 2013-04-10T18:54:34.437 に答える