Bireysel ay / gün / yıl saat içine ayrı biçimlendirilmiş tarih kırmak / dakika / saniye php

4 Cevap php

Ben aşağıdaki biçimde bir tarih var

November 18, 2009, 3:00PM

I kendi değişken olarak değer saklayabilir ki bu yüzden ben bu durumu nasıl zarar verebilir?

gibi ...

$month //November
$day //18
$year //2009
$hour //03
$minute //00
$ampm //PM

4 Cevap

$str = "November 18, 2009, 3:00PM";
list($month,$day,$year,$time) = preg_split('/[ ,]/',$str,false,PREG_SPLIT_NO_EMPTY);
preg_match('/([0-9]+):([0-9]+)([AP]M)/',$time,$timeparts);
list($time,$hour,$minute,$ampm) = $timeparts;

echo "\$month  $month\n";
echo "\$day    $day\n";
echo "\$year   $year\n";
echo "\$hour   $hour\n";
echo "\$minute $minute\n";
echo "\$ampm   $ampm\n";

Çıktı

$month  November
$day    18
$year   2009
$hour   3
$minute 00
$ampm   PM

'Date_parse' (http://nl2.php.net/manual/en/function.date-parse.php) işlevini kullanın. Bu çözümlü öğeleri içeren bir dizi döndürür:

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array()
    [is_localtime] => 
)

Zaman damgası içine tarih dönüştürmek, sonra zaman damgası ile kolayca parçaları alabilirsiniz. Bir diğer yol ise normal bir ifade kullanıyor.

More complex solution. If your dates may be in the different standards you can use date() function (http://php.net/manual/en/function.date.php) + strtotime() function (http://php.net/manual/en/function.strtotime.php), which parse string and returns the unix timestamp.

Eğer tarih dizeden bir yıl almak istiyorsanız Örneğin, sonraki kod yazabilirsiniz:

$date = 'November 18, 2009, 3:00PM';

$year = date('Y', strtotime($date));

Eğer olsun tarihte ayda ne kadar gün bilmek istiyorsanız Veya, böyle bir kod yazabilirsiniz:

$date = 'November 18, 2009, 3:00PM';

$num_of_days = date('t', strtotime($date));

'T' aydaki gün sayısını döndürür.