我会把像"July 22, 2011 in 7:42pm"这样的字符串转换成另一种格式。我尝试使用strtotime和date_parse_from_format函数,但在这种情况下它们不能正确工作。我想这个问题的原因可能是子字符串"in"。
如何将该格式转换为日期类型或时间戳?
在我看来,你是对的。至少我想这个问题的原因可能是子字符串"in"。
i
本身是一个标识符("带前导零的Minutes"),因此必须对其进行转义。
var_dump(date_parse_from_format('F d, Y in g:ia', $string));
参见date()
例#2
试试下面的解决方案
print $date = "July 22, 2011 in 7:42pm";
$date = date_parse_from_format('F j, Y * h:iA', $date);
print '<pre>'; print_r($date);
我会把像"July 22, 2011 in 7:42pm"这样的字符串转换成另一种格式。
建议使用静态方法DateTime::createFromFormat()
(documentation)(或者别名date_create_from_format()
)。下面是一个用于满足您需求的示例,但请务必吸收文档中的信息。
如何将该格式转换为日期类型或时间戳?
下面是一个基本的例子。有关可用的格式化字符,请参见 date()
手册页。
$subject = 'July 22, 2011 in 7:42pm';
$datetime = DateTime::createFromFormat('F d, Y in g:ia', $subject);
// Output as another format (2011-07-22 19:42:00)
echo $datetime->format('Y-m-d H:i:s');
// Output as Unix timestamp (1311327720)
echo $datetime->getTimestamp();