私は'Y-m-d'
の形式で日付の配列を持っています。私は配列をループし、各メンバーの一日だけを抽出したいが、それを分割することはできない。何らかの方法で部分文字列を使用しますか?完全な 'Date'文字列から 'Day'値のみを抽出する方法は?
簡単に言えば、私は'2010-11-24'
です。ちょうど'24'
から取得したいと思います。今日の問題は、単数形か二重形かのどちらかです。
私は'Y-m-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
あなたが正しく尋ねていたことを理解していれば、その日のちょうどその日の部分を与えるでしょう。 – martynthewolf
Ymdが提案するフォーマットでは、月が10未満の場合、mは01,02,03などのように0になります。 – martynthewolf
$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'];
テスト: `DateTime`バージョンの
$ php -r "echo date_parse_from_format('Y-m-d', '2010-11-24')['day'];"
24
+1。メソッド名だけで分かりやすい – jensgram