我想从时间戳"2012-07-12 17:50:00"中分别去掉日期和月份值。
所以本质上我可以有两个变量,比如:
$month = 7
$day = 12
由于我不太精通php,特别是regex编码,我想我会发布这个问题来征求关于如何完成这样的事情的建议。
在这方面的任何协助、见解或投入都将不胜感激。非常感谢。
注意:此外,我想将这两个变量转换为类似"7月12日"的输出。这可以很容易地编码,所以我没有把它作为问题的一部分,但如果有一个简单的函数来处理这些信息,我也会非常感激!
正如评论中所说,DateTime是一个不错的选择。
首先,如果您的php配置还没有为您设置,请通过以下方式设置您的默认时区:
date_default_timezone_set('XXXX');
XXXX代表支持时区列表之外的值
通过以下方式初始化您的日期:
$DateTime = new DateTime();
根据时间戳的位置,假设您将使用PHP:创建时间戳
$timestamp = $DateTime->getTimestamp();
现在格式化输出
echo $month = $DateTime->format( 'm' );
echo $day = $DateTime->format( 'd' );
或者获得您想要的输出:
echo $output = $DateTime->format( 'dS F' );
<?php
list($month,$day) = explode(':',date('n:j',strtotime('2012-07-12 17:50:00')),2);
echo 'Month: '.$month.'<br />'."'n";//Month: 7
echo 'Day: '.$day.'<br />'."'n";//Day: 12
?>
而且。。。
<?php
echo date('jS F',strtotime('2012-07-12 17:50:00'));//Outputs: 12th July
?>
假设时间戳是一个字符串,如果您正在寻找regex解决方案,那么类似的东西应该会起作用。。。
<?php
$string = '2012-07-12 17:50:00';
preg_match_all('/'d{4}-('d{2})-('d{2})/', $string, $matches);
$month =$matches[1][0];
$day = $matches[2][0];
?>