2012-09-25 183 views
1

我有這樣的一段代碼,讓我從數據庫中的字段:檢索日期,月份,年份從日期在PHP

$end_date=$row1['end_date']; 

如果我打印出來它給了我喜歡的東西:25-09- 2012 我需要的是獲取月份值,年份和日期。 類似:

$month=09; 
$day=25; 
$year=2012; 

我怎樣才能做到這一點? 謝謝!

+0

看看strtodate和日期函數 – sachleen

+0

看看我的答案。 –

回答

2

在你的情況,你可以使用explode功能是這樣的:

// store a string containing "25-09-2012" 
$end_date = $row1['end_date']; 

// split "25-09-2012" into an array of three elements 
$thedate = explode("-", $end_date); 

// retrieve the values 
$month = $thedate[0]; // 25 
$day = $thedate[1]; // 09 
$year = $thedate[2]; // 2012 
+0

非常感謝,很好,乾淨:) 我接受你的問題在幾分鐘內:) – Tao

+0

我可以問你一些事嗎? 我需要這個數字我提取沒有0,我的意思是如果月份是01,我需要它1,我該怎麼做? – Tao

+0

您必須將字符串轉換爲整數,因爲您可以簡單地使用[intval](http://php.net/manual/en/function.intval.php)函數。 –

1

嘗試 [month('end_date')] [day('end_date')] [year('end_date')]

或者使用explode和使用 - 作爲分隔符

+0

在MySQL中,它適用於日期字段,它拉的月份,所以想知道它可能在這種情況下工作。如果沒有建議使用爆炸 – RSM

1
$values = getdate(strtotime($row1['end_date'])); 
echo $values['mon']; //month 
echo $values['mday']; //day 
echo $values['year']; //year 
3

使用DateTime

$date = new DateTime($row1['end_date']); 
$year = $date -> format('Y'); 
$month = $date -> format('m'); 
$day = $date -> format('d'); 

如果時間戳都像一個規定,保持簡單:

list($day, $month, $year) = explode('-', $row1['end_date']); 
1

答:您可以使用DateTime

$date = DateTime::createFromFormat('d-m-Y',$row1['end_date']); 
$month = $date->format("m"); 
$day = $date->format("d"); 
$year = $date->format("Y"); 

B.使用strtotime

$date = strtotime($row1['end_date']); 
$month = date("m", $date); 
$day = date("d", $date); 
$year = date("Y", $date); 

C.您可以通過串只是sscanf掃描

$date = sscanf($row1['end_date'], "%d-%d-%d"); 
$month = $date[0] ; 
$day = $date[1] ; 
$year = $date[2] ; 

D.另一種方法是使用list & explode

list($day, $month, $year) = explode('-', $row1['end_date']); 
1

只需一行,然後根據需要進行格式化即可。 (十二月,十二月,十二月)等以及日期()。

list($month, $day, $year) = explode('-', date('m-d-Y', strtotime($row1['end_date']))); 
相關問題