0

我想从这个时间戳“2012-07-12 17:50:00”中分别删除日期和月份值。

所以基本上我可以有两个变量,比如:

$month = 7
$day = 12

由于我对 php,特别是正则表达式编码不是很精通,我想我会发布这个问题来征求关于如何完成这样的事情的建议。

在这方面的任何帮助、见解或输入将不胜感激。谢谢!

注意:此外,我想将这两个变量转换为“7 月 12 日”之类的输出。这可以很容易地编码,所以我没有把它作为问题的一部分,但是如果有一个简单的函数可以处理这些信息,我也会非常感激!

4

3 回答 3

3

正如评论中所说, 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' );
于 2012-07-12T18:47:15.620 回答
2
<?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
?>
于 2012-07-12T18:39:40.083 回答
1

假设时间戳是一个字符串,如果您正在寻找正则表达式解决方案,这样的事情应该可以工作......

<?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];
?>
于 2012-07-12T18:44:23.063 回答