2012-03-08 33 views
1

我試圖從我的MySQL數據庫中顯示我的日期字段。PHP的月數值

格式爲2012-01-01至2012-01-31

是否有顯示一月份爲0而不是1的方法嗎?

我用的strtotime改變其格式

date('Y, n, j',strtotime($s['date'])) 

但這表明

2012, 1, 1 

我想顯示這是

2012, 0, 1 

回答

3

你總是可以這樣做:

$time = strtotime($s['date']); 
$str = date('Y, ', $time); 
$str .= intval(date('n', $time)) - 1; 
$str .= date(', j', $time); 

不知道這是最好的/唯一的方式,但它應該工作。

編輯:davidethell的要點,代碼相應地改變。 +1的評論。

+2

如果您只是將時間戳寫入變量(例如$ timeString),然後在每個連續行中使用該變量,您將獲得更好的性能。除此之外,+1。 – davidethell 2012-03-08 09:24:47

1

如果你願意,你可以在SQL做到這一點:

SELECT MONTH(my_date_col) - 1 AS custom_month_col; 

否則我同意@Ynhockey

編輯(見註釋):

SELECT CONCAT(YEAR('2012-03-08'),'-', (MONTH('2012-03-08') - 1), '-', DAY('2012-03-08')) AS custom_month_col; 
+0

這一個只顯示月零..你可以顯示它將如何顯示爲2012-0-1? – 2012-03-08 09:22:08

1

或者你可以使用getdate()代替date()以數組的形式返回日期,然後連接所需的值,例如。

<?php 
    $date = getDate(strtotime($s['date'])); 
    echo $date['year'].', '.($date['mon']-1).', '.$date['mday']; 
?> 
0

如果你只需要一個月的輸出,這個工作對我來說:

$month = intval(date('n',strtotime($result["Date"]))) - 1; 

$結果[ 「日」]是從MySQL傳遞的值怎麼叫。