2012-01-23 110 views

回答

53

使用strtotime()

$time=strtotime($dateValue); 
$month=date("F",$time); 
$year=date("Y",$time); 
+2

爲什麼不''$ result = date(「F Y」,$ time);'? –

+0

但是我有一個問題,php如何區分日期和月份? – mohitesachin217

+0

如何顯示前三個月的月份?例如:2月的月份 – Aswathy

3

您可以使用此代碼:

$dateValue = strtotime('2012-06-05'); 
$year = date('Y',$dateValue); 
$monthName = date('F',$dateValue); 
$monthNo = date('m',$dateValue); 
printf("m=[%s], m=[%d], y=[%s]\n", $monthName, $monthNo, $year); 
8

從docs使用date()strtotime()

$date = "2012-01-05"; 

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

$month = date('F', strtotime($date)); 

echo $month 
2
$dateValue = '2012-01-05'; 
$yeararray = explode("-", $dateValue); 

echo "Year : ". $yeararray[0]; 
echo "Month : ". date('F', mktime(0, 0, 0, $yeararray[1])); 

Usiong爆炸()可以做到這一點。

2
$dateValue = '2012-01-05'; 
$year = date('Y',strtotime($dateValue)); 
$month = date('F',strtotime($dateValue)); 
5

可能不是最高效的代碼,但這裏有雲:

$dateElements = explode('-', $dateValue); 
$year = $dateElements[0]; 

echo $year; //2012 

switch ($dateElements[1]) { 

    case '01' : $mo = "January"; 
        break; 

    case '02' : $mo = "February"; 
        break; 

    case '03' : $mo = "March"; 
        break; 

    . 
    . 
    . 

    case '12' : $mo = "December"; 
        break; 


} 

echo $mo;  //January 
0

我個人比較喜歡使用這個快捷方式。輸出將仍然是相同的,但你並不需要月份和年份存儲在獨立的變量

$dateValue = '2012-01-05'; 
$formattedValue = date("F Y", strtotime($dateValue)); 
echo $formattedValue; //Output should be January 2012 

上使用此招一點點側面說明,你可以用逗號的年份和月份像分離所以:

$formattedValue = date("F, Y", strtotime($dateValue)); 
echo $formattedValue //Output should be January, 2012 
+0

'SQLSTATE [42000]:語法錯誤或訪問衝突:1305 FUNCTION yii_attendance.DATEPART不存在正在執行的SQL是:SELECT daytime FROM attendance WHERE DATEPART(month,my_date_field)= 8 ORDER BY daytime DESC' – raxa

3

我使用這些函數獲取年,月,日,從日期

,你應該把它們放在一類

public function getYear($pdate) { 
     $date = DateTime::createFromFormat("Y-m-d", $pdate); 
     return $date->format("Y"); 
    } 

    public function getMonth($pdate) { 
     $date = DateTime::createFromFormat("Y-m-d", $pdate); 
     return $date->format("m"); 
    } 

    public function getDay($pdate) { 
     $date = DateTime::createFromFormat("Y-m-d", $pdate); 
     return $date->format("d"); 
    } 
-2
$dateValue = strtotime($q); 

$yr = date("Y", $dateValue) ." "; 
$mon = date("m", $dateValue)." "; 
$date = date("d", $dateValue); 
+0

這不會將月份轉換爲** January **,儘管如此。應該使用F,參見http://php.net/manual/en/function.date.php。 –

4

我會分享我的代碼:

在你給出的例子日期:

$dateValue = '2012-01-05'; 

它會是這樣的:

dateName($dateValue); 



    function dateName($date) { 

     $result = ""; 

     $convert_date = strtotime($date); 
     $month = date('F',$convert_date); 
     $year = date('Y',$convert_date); 
     $name_day = date('l',$convert_date); 
     $day = date('j',$convert_date); 


     $result = $month . " " . $day . ", " . $year . " - " . $name_day; 

     return $result; 
    } 

,並會返回一個值:1月5日,2012 - 星期四

相關問題