如何将字符串转换为日期



我会把像"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();

相关内容

  • 没有找到相关文章

最新更新