web-dev-qa-db-ja.com

簡単な質問:日付(2011年8月17日)を月、日、年に分割する方法は? PHP

$ orderdateという変数があり、このmm-dd-yyyyのような日付形式に設定されています。

PHPでは、この変数を$ month、$ day、$ yearにどのように分割しますか?

ご協力いただきありがとうございます。

10
David Meyer

入力値の形式について確信がある場合は、次のようにします。

_$orderdate = explode('-', $orderdate);
$month = $orderdate[0];
$day   = $orderdate[1];
$year  = $orderdate[2];
_

preg_match() を使用することもできます:

_if (preg_match('#^(\d{2})-(\d{2})-(\d{4})$#', $orderdate, $matches)) {
    $month = $matches[1];
    $day   = $matches[2];
    $year  = $matches[3];
} else {
    echo 'invalid format';
}
_

さらに、 checkdate() を使用して日付を検証できます。

19
binaryLV

あなたがいる場合 特定されません 入力形式については、次のこともできます。

$time  = strtotime($input);
$day   = date('d',$time);
$month = date('m',$time);
$year  = date('Y',$time);
19
Kokos
list($month, $day, $year) =explode("-",$orderdate);
4
Bhanu Krishnan

良いアプローチは date_parse_from_format() を使用することです。

あなたの例のために:

$dateStr = '03-27-2015';
$dateArray = date_parse_from_format('m-d-Y', $dateStr);

これは与える $dateArray なので:

Array
(
    [year] => 2015
    [month] => 3
    [day] => 27
    [hour] => 
    [minute] => 
    [second] => 
...
)
2
omar j

explodeを使用して文字列を分割します

list($m,$d,$y)=explode('-',$date);
2
RiaD