我有一個日期的格式如下掰開格式化的日期爲單個月/日/年時/分/秒的PHP
November 18, 2009, 3:00PM
我怎樣才能打破了,這樣我可以存儲每個值它自己的變量?
如...
$month //November
$day //18
$year //2009
$hour //03
$minute //00
$ampm //PM
我有一個日期的格式如下掰開格式化的日期爲單個月/日/年時/分/秒的PHP
November 18, 2009, 3:00PM
我怎樣才能打破了,這樣我可以存儲每個值它自己的變量?
如...
$month //November
$day //18
$year //2009
$hour //03
$minute //00
$ampm //PM
$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";
輸出
$month November
$day 18
$year 2009
$hour 3
$minute 00
$ampm PM
這是最簡單的選擇。你贏了!感謝大家的幫助和時間。 – mrpatg 2009-11-24 07:08:56
是的,它與你想要的東西最接近,但其他建議因爲存在,更靈活,更安全等而得到讚譽。 – 2009-11-24 07:21:36
使用'date_parse'(http://nl2.php.net/manual/en/function.date-parse.php)函數。它返回一個陣列與所解析的項目:
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] =>
)
我將如何處理安瓿部分? – mrpatg 2009-11-20 10:02:18
date_parse將在24小時內返回小時。 – markus 2009-11-20 10:05:14
AM/PM部分可以使用'date_parse_from_format'函數進行分析。它接受所有日期函數使用的格式。這些格式可以包含AM/PM規格。在這裏看到的細節:http://nl2.php.net/manual/en/function.date-parse-from-format.php – TheGrandWazoo 2009-11-20 10:05:55
更復雜的解決方案。 如果你的日期可能在不同的標準,你可以使用date()函數(http://php.net/manual/en/function.date.php)+的strtotime()函數(http://php.net/manual/en/function.strtotime.php),其解析字符串並返回Unix時間戳。
例如,如果你想從你的日期字符串獲得一年你可以寫下面的代碼:
$date = 'November 18, 2009, 3:00PM';
$year = date('Y', strtotime($date));
或者,如果你想知道你有多少天在月日得到的,你可以編寫這樣的代碼:
$date = 'November 18, 2009, 3:00PM';
$num_of_days = date('t', strtotime($date));
't'返回給定月份的天數。
不要編輯您的解決方案到您的問題。將其作爲下面的答案發布。 – meagar 2013-03-20 04:44:18