Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-将时间戳(2012-07-12 20:26:00)转换为两个独立的变量,以反映月份和日期值?_Php_Regex_String_Strip - Fatal编程技术网

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

PHP-将时间戳(2012-07-12 20:26:00)转换为两个独立的变量,以反映月份和日期值?,php,regex,string,strip,Php,Regex,String,Strip,我想分别从时间戳“2012-07-12 17:50:00”中去掉日期和月份值 所以基本上我可以有两个变量,比如: $month = 7 $day = 12 由于我不是很精通php,特别是正则表达式编码,我想我会发布这个问题来征求关于如何完成类似任务的建议 在此方面的任何帮助、见解或投入都将不胜感激。谢谢大家! 请注意:另外,我想把这两个变量转换成“7月12日”这样的输出。这可以很容易地编码,所以我没有把它作为问题的一部分,但是如果有一个简单的函数来处理这些信息,我也会非常感激 <?ph

我想分别从时间戳“2012-07-12 17:50:00”中去掉日期和月份值

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

$month = 7
$day = 12
由于我不是很精通php,特别是正则表达式编码,我想我会发布这个问题来征求关于如何完成类似任务的建议

在此方面的任何帮助、见解或投入都将不胜感激。谢谢大家!

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


<?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
?>


而且

<?php
echo date('jS F',strtotime('2012-07-12 17:50:00'));//Outputs: 12th July
?>

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

<?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];
?>

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

<?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];
?>

正如评论中所说,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' );

正如评论中所说,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' );


您可能需要查看有关日期时间的文档class@GordonM谢谢,我现在就用谷歌搜索一下,看看是否相关。这是mysql的日期/时间值吗?如果是的话,你最好只做
选择day(你的字段)作为day,month(你的字段)作为month
。除此之外,还有
select date\u format(您的字段,'%d%M')
来选择您的格式化版本directly@MarcB它是一个mysql时间戳值。不过,我对你的回答有点困惑。比如说,我的字段是“timestamp”,我应该运行
选择day(timestamp)作为day,month(timestamp)作为month
,它将反映我需要的值作为结果?@BlackberryFan:是的,没错。mysql有一个巨大的日期/时间函数库,您可以使用:最好在那里进行日期转换,因为如果您在php中进行转换,您将迫使系统执行多个本机->字符串->本机->字符串->等等。。。转换周期。在mysql中直接进行一次转换class@GordonM谢谢,我现在就用谷歌搜索一下,看看是否相关。这是mysql的日期/时间值吗?如果是的话,你最好只做
选择day(你的字段)作为day,month(你的字段)作为month
。除此之外,还有
select date\u format(您的字段,'%d%M')
来选择您的格式化版本directly@MarcB它是一个mysql时间戳值。不过,我对你的回答有点困惑。比如说,我的字段是“timestamp”,我应该运行
选择day(timestamp)作为day,month(timestamp)作为month
,它将反映我需要的值作为结果?@BlackberryFan:是的,没错。mysql有一个巨大的日期/时间函数库,您可以使用:最好在那里进行日期转换,因为如果您在php中进行转换,您将迫使系统执行多个本机->字符串->本机->字符串->等等。。。转换周期。在mysql中直接进行一次转换。这是一个很好的答案,它应该得到不止一颗星:)但我有一个问题,在最后一个问题中,就像你用
dS
格式一样,而在下面由polishHurricane给出的答案中,它是
jS
。这是什么意思?@BlackberryFan,
d=01到31(前导零)j=1到31(非前导零)
你可以在这里找到所有可用的格式:这是一个很好的答案,它应该不止一颗星:)但我有一个问题,在最后一个问题中,就像你一样,格式为
dS
,然而,在下面波利斯胡里肯给出的答案中,它是
jS
。这是什么意思?@BlackberryFan,
d=01到31(前导零)j=1到31(非前导零)
您可以在这里找到所有可用的格式:非常感谢您的回答,这正是我的想法。但现在我不确定这是否是最好的解决办法。我需要时间思考:)非常感谢你的回答,这正是我当时的想法。但现在我不确定这是否是最好的解决办法。我需要时间思考:)我相信你已经完美地回答了我的问题。非常感谢你!请看我在他们的回答中对塔利辛的评论。我相信你已经完美地回答了我的问题。非常感谢你!请看我在他们的回答中对塔利辛的评论。