Простой вопрос: Как разбить дату (08-17-2011) на месяц, день, год?PHP - PullRequest
10 голосов
/ 18 августа 2011

У меня есть переменная с именем $ orderdate, и она настроена на формат даты, подобный этому mm-dd-yyyy.

В PHP как я бы разделил эту переменную на $ month, $ day, $ year?

Спасибо за вашу помощь.

Ответы [ 5 ]

19 голосов
/ 18 августа 2011

Если вы не уверены относительно формата ввода, вы можете также сделать следующее:

$time  = strtotime($input);
$day   = date('d',$time);
$month = date('m',$time);
$year  = date('Y',$time);
19 голосов
/ 18 августа 2011

Если вы уверены в формате входного значения , то:

$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() для подтверждения даты.

4 голосов
/ 18 августа 2011
list($month, $day, $year) =explode("-",$orderdate);
2 голосов
/ 01 июня 2015

Хороший подход - использовать 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 голосов
/ 18 августа 2011

Используйте explode для разделения строки

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