【发布时间】:2018-08-21 10:00:23
【问题描述】:
问题是当用户以以下任何格式(dd-mm-yyyy,yyyy-mm-dd)提供日期时,从字符串中获取日期时间对象我的结果应该是(yyyy-mm-dd)。我的功能如下:
public function dateOfBirth($date){
$date_format = strtotime($date);
$result = new \DateTime('@'.$date_format);
}
当日期为(yyyy-mm-dd)格式时,它成功返回日期为(yyyy-mm-dd),但当用户提供日期为(dd-mm-yyyy)格式时返回以下错误
DateTime::__construct(): Failed to parse time string (@) at position 0 (@): Unexpected character
当用户输入上述任何格式时,我需要以 (yyyy-mm-dd) 格式返回日期
【问题讨论】:
-
你为什么要把
@放在开头 -
没有
@代码可以正常工作 -
您发布的代码与
new \DateTime($date)相同。DateTime::__construct()和strtotime()使用与 parse the date strings 相同的引擎。 -
@RiggsFolly:
@…表示法对于使用 unix 时间戳初始化 datetime 对象是有效的。 -
@lxg 当我学到一些东西时总是美好的一天。谢谢
标签: php