0

URL 中的日期和时间应采用 YYYY-MM-DD-HH-II-SS 格式。我想检查它的正确性并以mysql时间戳格式的列插入数据库。

1)$timestamp = $this->input->get('time_from')我从网址收到它。

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

您不能在 MySQL TIMESTAMP 列中存储 1970 年之前的日期。请改用 DATETIME。http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

您可以使用checkdate()函数来查看日期是否有效。

于 2013-04-10T18:54:34.437 回答