在不使用分隔符的情况下分解字符串


Explode string without using a separator

我有一个程序来存储数据,并且使用该数据以以下格式包含日期

20111212

(那将是今天的日期 [12-12-2011] (。有没有办法把它分解成四个部分,比如

2011
12
12

所以我可以在这些数字之间放一个-。我的最终目标是将日期采用 DD-MMY-YYY.
的形式感谢您的帮助!

没有必要"分解"字符串。您可以使用函数strtotime()为此。它将"将任何英文文本日期时间描述转换为Unix时间戳"。然后,您可以将此时间戳传递给函数date()以您想要的任何方式格式化日期。

$date = '20111212';
$timestamp = strtotime($date);
echo date('d-m-Y', $timestamp);

如果您的格式始终为 YYYYMMDD,则首先取 4 位数字作为年份,然后取 2 位数字作为月份,最后取 2 位数字作为日期。 请参阅 Google 中 PHP 的子字符串函数。

$date = preg_replace('('d{4})('d{2})('d{2})', '$1-$2-$3', $date);

http://php.net/manual/en/function.preg-replace.php