我有两种格式的数据库日期:
$tests[] = "2018-01-01";
$tests[] = "2018-01-01 12:34:56.789";
是否可以使用DateTime::createFromFormat
将字符串转换为DateTime并忽略时间部分?我想用最少的代码来处理这两种情况。
答案 0 :(得分:0)
您可以使用以下格式:
"!Y-m-d+"
像这样:
echo DateTime::createFromFormat("!Y-m-d+", "2018-01-01") ->format(DateTime::ATOM); // 2018-01-01T00:00:00+05:00
echo DateTime::createFromFormat("!Y-m-d+", "2018-01-01 12:34:56.789")->format(DateTime::ATOM); // 2018-01-01T00:00:00+05:00
!
字符会将其左侧的所有日期和时间组件重置为1970-01-01 00:00:00。没有它,未在格式中指定的组件将设置为当前时间的组件。+
字符指示解析器忽略日期字符串中的结尾字符。