【发布时间】:2010-11-25 09:43:38
【问题描述】:
我有一个格式为'Y-m-d' 的日期值数组。我想循环遍历数组,只提取每个成员的日期('d'),但不知道如何拆分它。我是否以某种方式使用子字符串?
简单地说,我有'2010-11-24',我想从中得到'24'。问题是当天可能是单数或两位数。
【问题讨论】:
我有一个格式为'Y-m-d' 的日期值数组。我想循环遍历数组,只提取每个成员的日期('d'),但不知道如何拆分它。我是否以某种方式使用子字符串?
简单地说,我有'2010-11-24',我想从中得到'24'。问题是当天可能是单数或两位数。
【问题讨论】:
如果您的 PHP strtotime():
$string = "2010-11-24";
$timestamp = strtotime($string);
echo date("d", $timestamp);
如果您的 PHP >= 5.3,请使用基于 DateTime 的解决方案,使用 createFromFormat - DateTime 是未来,可以处理 1900 年和 2038 年之后的日期:
$string = "2010-11-24";
$date = DateTime::createFromFormat("Y-m-d", $string);
echo $date->format("d");
【讨论】:
尝试使用date_parse_from_format,例如:
date_parse_from_format('Y-m-d', '2010-11-24')['day'];
在 shell 中测试:
$ php -r "echo date_parse_from_format('Y-m-d', '2010-11-24')['day'];"
24
【讨论】:
php> $d = '2010-11-24';
'2010-11-24'
php> $fields = explode('-', $d);
array (
0 => '2010',
1 => '11',
2 => '24',
)
php> $fields[2];
'24'
【讨论】:
<?php
$dates = array('2010-01-01', '2010-01-02', '2010-01-03', '2010-01-23');
foreach ($dates as $date) {
$day[] = substr($date, 8, 2);
}
var_dump($day);
?>
【讨论】:
9 还是永远是 09。
$string = "2010-11-24";
$date = new DateTime($string);
echo date_format($date, 'd');
【讨论】:
$dt = "2008/02/23";
echo '今天是'。日期(“d”,strtotime($dt));
【讨论】: