PHP-将时间戳(2012-07-12 20:26:00)转换为两个独立的变量,分别表示月份和日期的值


PHP - Turn a timestamp (2012-07-12 20:26:00) Into two seperate variables that refelct the month and day values?

我想从时间戳"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];
?>