我有一些数据(由用户insered),如:的MySQL和PHP - 如何将字符串转换为DATETIME
- 10-12-2010
- XX-12-2010
- 10-XX-2010
- 10-12-XXXX
(请注意,我加XX(或XXXX),当数据没有insered。)
我怎样才能将这些字符串通过使用MySQL的语法到DATETIME?
感谢
UPDATE
$day=(is_numeric($_POST['day']) && $_POST['day'] > 0 && $_POST['day'] < 32) ? $_POST['day'] : '00';
$month=(is_numeric($_POST['month']) && $_POST['month'] > 0 && $_POST['month'] < 13) ? $_POST['month'] : '00';
$year=(is_numeric($_POST['year']) && $_POST['year'] > 1999 && $_POST['year'] < (date("Y")+1)) ? $_POST['year'] : '0000';
$data=$year."-".$month."-".$day;
$mysqlDate=date('Y-m-d', strtotime($data));
echo $mysqlDate;
还有一个问题:如果数据是*空-12-2010" ,它打印2010-11-30为什么
你不会得到这样的数据丢失。你可以使用strtotime函数,但是它们不能很好地处理。内置函数都不会猜测缺少的部分是什么。 – profitphp 2010-12-17 15:52:11
您需要解决真正的问题,允许用户输入错误数据 - 强制他们从丢失列表中选择日期是通常的做法。如果你允许文本的自由输入,那么你必须准备好爆炸和分析每个领域。这是可行的,除了你的情况#3 – Cups 2010-12-17 16:04:19