2012-01-23 48 views

Trả lời

53

Sử dụng strtotime():

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

Tại sao không '$ result = date (" F Y ", $ time);'? –

+0

Nhưng tôi có một câu hỏi làm thế nào php sẽ phân biệt giữa ngày và tháng ở đây? .. – mohitesachin217

+0

làm thế nào để hiển thị ba chữ cái đầu tiên của tháng? Ví dụ: Tháng hai cho tháng – Aswathy

3

Bạn có thể sử dụng mã này:

$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

Sử dụng date()strtotime() từ các tài liệu.

$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 explode() này có thể được thực hiện.

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

Có lẽ không phải là mã hiệu quả nhất, nhưng ở đây nó đi:

$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

Cá nhân tôi thích sử dụng phím tắt này. Sản lượng sẽ vẫn là như nhau, nhưng bạn không cần phải lưu trữ các tháng và năm trong các biến riêng biệt

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

Một bên lưu ý nhỏ về việc sử dụng thủ thuật này, bạn có thể sử dụng dấu phẩy để tách các tháng, năm như vậy:

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

'SQLSTATE [42000]: Lỗi cú pháp hoặc vi phạm truy cập: 1305 FUNCTION yii_attendance.DATEPART không tồn tại SQL đang được thực hiện là: CHỌN NGÀY TỪ NGAY TẠI ĐÂY KHI DATEPART (tháng, my_date_field) = 8 TỰ DO vào ban ngày DESC' – raxa

3

tôi đang sử dụng các chức năng để có được năm, tháng, ngày, kể từ ngày

bạn nên đặt chúng trong một lớp học

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

Điều này không chuyển đổi tháng thành ** January **, bạn đã đóng cửa. F nên được sử dụng, xem http://php.net/manual/en/function.date.php. –

4

tôi sẽ chia sẻ mã của tôi:

Trong ví dụ của bạn ngày đã cho:

$dateValue = '2012-01-05'; 

Nó sẽ đi như thế này:

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; 
    } 

và sẽ trả về một giá trị: ngày 05 tháng 1 , 2012 - Thứ Năm

Các vấn đề liên quan