我会以不同的格式转换类似“2011年7月22日下午7:42”的字符串。 我尝试使用strtotime和date_parse_from_format函数,但在这种情况下它们无法正常工作。我想这个问题的原因可能是子串“in”。
如何在日期类型或时间戳中转换该格式?
答案 0 :(得分:3)
我认为这个问题的原因可能是子串“in”。
据我所知,你是对的。至少i
是一个标识符(“带有前导零的分钟”)本身,因此你必须将其转义。
var_dump(date_parse_from_format('F d, Y \i\n g:ia', $string));
答案 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();