目前我正在从事PHP
和MySQ
L项目。我正在以字符串格式从用户那里获取DATE INPUT
。因此,用户可以在text-box
中输入任何格式。例如日/月/年或日-月-年或年-月-日或年-月-日或月/日/年等(我知道这种做法太糟糕了(。但我的问题是:
是否可以将它们全部转换为单一格式并将其存储在 单列?
.
对于转换,我正在使用str_to_date()
函数,但它只接受一种格式进行转换。如何添加其他格式以将字符串转换为日期?
试试这个,应该可以工作:
$mysqlFormatedDate = date('Y-m-d H:i:s', strtotime($yourTime));
PHP 将采用$yourTime并解析其格式,然后将其转换为 unix 时间戳,然后它将转换为 mysql 日期时间格式,即 Y-m-d H:i:s,然后您只需将其保存到您的数据库中。
您可以使用STR_TO_DATE在mysql_query中执行此操作:
STR_TO_DATE($yourTime, '%c/%e/%Y %r')
您可以使用"RLIKE(("来检查某些模式,但这会失败,因为您无法区分国际模式和延迟模式。想象一下,有人输入"12/11/2018"。是12月11日还是11月12日?你也写了"例如",所以如果你允许一切,你会怎么看待"20122007"?2007年12月20日,2012年7月20日? 使用 JS-库进行日期输入,或分别输入日、月和年。否则就很绝望了。