我有一個格式爲'Y-m-d'
的日期值數組。我想循環訪問數組,只提取每個成員的日期('d'
),但不能分解它。我是否以某種方式使用子字符串?如何從完整的'Date'字符串中僅提取'Day'值?
簡而言之,我有'2010-11-24'
,我想從中得到'24'
。現在的問題可能是單數或雙數。
我有一個格式爲'Y-m-d'
的日期值數組。我想循環訪問數組,只提取每個成員的日期('d'
),但不能分解它。我是否以某種方式使用子字符串?如何從完整的'Date'字符串中僅提取'Day'值?
簡而言之,我有'2010-11-24'
,我想從中得到'24'
。現在的問題可能是單數或雙數。
如果你有PHP < 5.3,使用strtotime()
:
$string = "2010-11-24";
$timestamp = strtotime($string);
echo date("d", $timestamp);
如果你有PHP> = 5.3,使用通過createFromFormat一個DateTime
基礎的解決方案 - DateTime
是未來,可以處理日期超出了1900年和2038:
$string = "2010-11-24";
$date = DateTime::createFromFormat("Y-m-d", $string);
echo $date->format("d");
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`。 – jensgram 2010-11-25 09:51:39
$string = "2010-11-24";
$date = new DateTime($string);
echo date_format($date, 'd');
嘗試使用date_parse_from_format
,例如:
date_parse_from_format('Y-m-d', '2010-11-24')['day'];
測試殼:
$ php -r "echo date_parse_from_format('Y-m-d', '2010-11-24')['day'];"
24
+1的`DateTime`版本。從單獨的方法名稱很容易理解。 – jensgram 2010-11-25 09:53:09