【问题标题】:How to get year and month from a date - PHP如何从日期获取年份和月份 - PHP
【发布时间】:2012-02-16 14:04:15
【问题描述】:

如何从给定日期获取年份和月份。

例如$dateValue = '2012-01-05';

从该日期开始,我需要将年份设为 2012,将月份设为 January。

【问题讨论】:

标签: php date


【解决方案1】:

使用strtotime():

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

【讨论】:

  • 为什么不$result = date("F Y",$time);?
  • 但是我有一个问题 php 在这里如何区分日和月?..
  • 如何显示月份的前三个字母?例如:二月的二月
【解决方案2】:

使用文档中的date() 和strtotime()。

$date = "2012-01-05";

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

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

echo $month

【讨论】:

    【解决方案3】:

    可能不是最有效的代码,但它就是这样:

    $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
    

    【讨论】:

      【解决方案4】:

      我正在使用这些函数从日期获取年、月、日

      你应该把它们放在一个类中

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

      【讨论】:

        【解决方案5】:

        您可以使用此代码:

        $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);
        

        【讨论】:

          【解决方案6】:

          我将分享我的代码:

          在您给定的示例日期中:

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

          并将返回一个值:2012 年 1 月 5 日 - 星期四

          【讨论】:

            【解决方案7】:
            $dateValue = '2012-01-05';
            $yeararray = explode("-", $dateValue);
            
            echo "Year : ". $yeararray[0];
            echo "Month : ". date( 'F', mktime(0, 0, 0, $yeararray[1]));
            

            使用 explode() 可以做到这一点。

            【讨论】:

              【解决方案8】:
              $dateValue = '2012-01-05';
              $year = date('Y',strtotime($dateValue));
              $month = date('F',strtotime($dateValue));
              

              【讨论】:

                【解决方案9】:

                我个人更喜欢使用这个快捷方式。输出仍然是相同的,但您不需要将月份和年份存储在单独的变量中

                $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
                

                【讨论】:

                • SQLSTATE[42000]: Syntax error or access violation: 1305 FUNCTION yii_attendance.DATEPART does not exist The SQL being executed was: SELECT daytime FROM attendance WHERE DATEPART(month, my_date_field) = 8 ORDER BY daytime DESC
                【解决方案10】:
                $dateValue = strtotime($q);
                
                $yr = date("Y", $dateValue) ." "; 
                $mon = date("m", $dateValue)." "; 
                $date = date("d", $dateValue); 
                

                【讨论】:

                猜你喜欢
                • 2021-12-16
                • 2017-01-19
                • 2017-06-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-12-19
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多