从自定义实用程序类中,我得到以下格式的日期变量格式:d-m-Y
. 我的计划是使用Date('Y-m-d', strtotime($myCustomDate))
,但我不确定 PHP 每次都会返回正确的日期。我如何确定我的方法是安全的?
当我需要 2013 年 3 月 2 日时,我怎么知道 02-03-2013 不会转换为相当于 2013 年 2 月 3 日的 mysql。
你如何处理这个问题?
最安全的方法(除了使用时间戳,这是一个完全不同的故事),将使用YYYY-MM-DD
格式,因为不可能有相反的(即YYYY-DD-MM
未定义),并且 MySQL 很好地理解它。
然后,您可以使用 PHP 将其转换为任何其他所需的格式。
如果格式始终为 dmY,则可以使用 preg_split 函数将日期分解为其组成部分,然后使用日期重新格式化
<?PHP
$date = "3-13-2013";
$date_parts = preg_split("/-/",$date);
$newDate = Date("Y-m-d",mktime(0, 0, 0, $date_parts[0], $date_parts[1], $date_parts[2]));
?>
这将导致 $newDate 的值为 2013-03-13。