好吧,我正在使用一个库从X网站获取一些字符串,该字符串看起来像:
2019年3月17日,欧洲中部时间由Gaz'haragoth死于418级。
if($player->getDeaths()) {
$mystring = $player->getDeaths()[0];
$dateString = preg_replace("/\([^)]+\)/","",$mystring);
$date = new DateTime($dateString);
echo $date->format('Y-m-d H:i:s');
}
这是我的代码现在的样子,我怎么只能得到“ Mar 17 2019,16:08:43”?
谢谢!
答案 0 :(得分:0)
graphql-java-servlet
答案 1 :(得分:0)
可以使用
的正则表达式搜索(.*?)[0-9]+[:][0-9]+[:][0-9]+
在字符串上。在hh:mm:ss标记之前获取所有内容,而在
之后获取任何内容如果每次都具有相同的长度,也可以将子字符串设置到某个位置。
答案 2 :(得分:0)
如果字符串的前半部分(日期)是标准的,那么您也可以使用此字符串而无需任何正则表达式:
$output_str = implode(" ",array_splice(explode(" ",$input_str),0,4));
答案 3 :(得分:0)
您可以使用DateTime::createFromFormat
从该字符串创建DateTime对象。
$string = "Mar 17 2019, 16:08:43 CET Died at Level 418 by Gaz'haragoth.";
$date = DateTime::createFromFormat('M d Y, H:i:s T+', $string);
然后,您可以按照自己喜欢的格式从中输出。
尽管您可能实际上并不需要DateTime对象。如果您需要做的只是去除结尾的文本,那么substr
似乎是最简单的方法,只要您将日期格式设置为前导零,则字符串的日期部分应始终相同。
答案 4 :(得分:0)
尝试
<?php
$str = "Mar 17 2019, 16:08:43 CET Died at Level 418 by Gaz'haragoth";
echo preg_replace('/^(.+\d+:\d+:\d+).+$/', '$1', $str);
?>