如何将字符串转换为日期

时间:2011-07-23 09:13:24

标签: php date datetime

我会以不同的格式转换类似“2011年7月22日下午7:42”的字符串。 我尝试使用strtotime和date_parse_from_format函数,但在这种情况下它们无法正常工作。我想这个问题的原因可能是子串“in”。

如何在日期类型或时间戳中转换该格式?

3 个答案:

答案 0 :(得分:3)

  

我认为这个问题的原因可能是子串“in”。

据我所知,你是对的。至少i是一个标识符(“带有前导零的分钟”)本身,因此你必须将其转义。

var_dump(date_parse_from_format('F d, Y \i\n g:ia', $string));

请参阅date() Example #2

答案 1 :(得分:1)

嘿,请尝试以下解决方案

print $date = "July 22, 2011 in 7:42pm";
$date = date_parse_from_format('F j, Y * h:iA', $date);
print '<pre>'; print_r($date);

答案 2 :(得分:0)

  

我会以不同的格式转换类似“2011年7月22日下午7:42”的字符串。

首选静态方法DateTime::createFromFormat()documentation)(或别名date_create_from_format())。以下是根据您的需求使用的示例,但请务必吸收文档中的信息。

  

如何在日期类型或时间戳中转换该格式?

以下是一个基本示例。有关可用的格式字符,请参阅date() manual page

$subject = 'July 22, 2011 in 7:42pm';
$datetime = DateTime::createFromFormat('F d, Y \i\n 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();