【发布时间】:2016-11-04 10:43:54
【问题描述】:
$string = NCPDP_2016-10-28_15-31-10.csv;
如何获取没有扩展名和“_”的日期,只有“2016-10-28 15-31-10”?
【问题讨论】:
$string = NCPDP_2016-10-28_15-31-10.csv;
如何获取没有扩展名和“_”的日期,只有“2016-10-28 15-31-10”?
【问题讨论】:
嗯,这是更短的方式。如果您想再次使用它们,可以将变量 $setup 和 $explode add 添加到函数中。
$string = 'NCPDP_2016-10-28_15-31-10.csv';
$setup = str_replace("_", ".csv", $string);
$explode = explode(".csv", $setup);
echo $explode[1].' '.$explode[2];
结果将是
2016-10-28 15-31-10
【讨论】:
这很可能是一种更好的方法,但这会奏效。
$string = "NCPDP_2016-10-28_15-31-10.csv";
$explode = explode( '_', $string );
echo $explode[ 1 ]."\n";
$explode2 = explode( '.', $explode[ 2 ] );
echo $explode2[ 0 ];
结果:
2016-10-28
15-31-10
【讨论】:
这是一个更短的版本:
$string = 'NCPDP_2016-10-28_15-31-10.csv';
echo trim(preg_replace('/([^\d\-])/', ' ', $string));
我们只是用空格替换所有不是数字或破折号的内容。我们这样做而不是完全删除它们的原因是保持日期和时间之间的空间。
现在我们可以修剪掉所有空白,但保留中间的空白(在日期和时间之间)。
【讨论】:
最简单的方法。
$str1 = 'NCPDP_2016-10-28_15-31-10.csv';
$replacestr = str_replace("_", ".csv", $str1);
$explode = explode(".csv", $replacestr);
echo $explode[1].' '.$explode[2];
【讨论】: