字符串PHP中的时间戳


Timestamp from String PHP

我有一个由不可调整的数据提供的荒谬字符串,我需要以一致的方式将其转换为时间戳。

5162016

有时是两位数的月份,有时是前导零,有时不是。

我尝试使用DateTime

$time = 'DateTime::createFromFormat("njY", "5162016");
$timestamp = $time->getTimestamp();

我尝试了njYmdY,但都返回了一个转换为05/01/0020 的时间戳

任何想法都将不胜感激。

规范化数据,使月份始终以零开头。

$normalizedDate = str_pad("5162016", 8, 0, STR_PAD_LEFT);
$time = 'DateTime::createFromFormat("mdY", $normalizedDate);
$timestamp = $time->getTimestamp();

如果一个月的日期始终是带前导零的2位数字,则此有效。