0
来自URL的日期和时间格式应为YYYY-MM-DD-HH-II-SS。我想检查它的正确性,并将其插入到mysql时间戳格式的列中的数据库中。从url检查日期时间
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自动转换。
问题是:如何避免这些令人困惑的自动转换?提供这种检查的最佳方法是什么?
我不需要1970年之前的日期。我继续使用TIMESTAMP。 checkdate函数也不会给出检查是否满足mysql时间戳要求的可能性。 – Anton 2013-04-10 19:39:30
如果你看看我给你链接到的MySQL文档,你可以看到Timestamp类型允许的日期范围,并检查这些日期范围。你可以使用日军看看日期是否有效 - 如果不是,它将会像你在#4中描述的那样“变形”。 – 2013-04-11 03:51:37