【问题标题】:PHP get the year from the variablePHP 从变量中获取年份
【发布时间】:2012-09-04 19:42:02
【问题描述】:

我通常会搞砸这个,但我试图从变量$date = 2011-01-01 中获取一年我试图从变量中获取2011...我试过这个但它没有回应任何东西...

date(strtotime("Y"), strtotime($date));

【问题讨论】:

    标签: php date strtotime


    【解决方案1】:
    $year = date('Y', strtotime('2011-01-01'));
    

    或者,如果您不想转换为日期,并相信您的输入格式:

    $year = explode('-', '2011-01-01')[0];
    

    上面需要 PHP 5.4,在旧版本上你需要两行:

    $arr = explode('-', '2011-01-01');
    $year = $arr[0];
    

    或者,tigrang 建议的这个稍快的替代方案:

    $year = substr($date, 0, 4);
    

    或者,一种更快的方法,正如salathe 建议的那样:

    $year = (int) $date;
    

    (第一个破折号之后的所有内容都将被忽略,因此$year 将包含一个带有日期部分的整数(与其他选项不同,其中$year 将是一个字符串)。

    【讨论】:

    • $year = substr($date, 0, 4); 稍微快一点 ;)
    • $year = (int) $date; waaaaaaaay 更快(对于 way 的微小值)
    • 发布标记的社区维基,任何人都可以通过直接编辑来贡献其他选项。
    • 我的答案还有几个超级有用的替代方案,请随意窃取。
    【解决方案2】:

    date('Y', strtotime($date)) 应该这样做

    第一个参数是格式,第二个是时间戳。

    【讨论】:

      【解决方案3】:

      您可以将日期分解成一个列表并单独调用每个日期项。

      $date = '2012-01-01';
      list($year, $month, $day) = explode('-', $date);
      
      echo $year; // echoes 2012
      

      【讨论】:

        【解决方案4】:

        我可以建议使用 PHP 的 DateTime class 作为替代方案吗:

        $date = '2011-01-01'; 
        $dateTime = new DateTime($date);
        
        echo $dateTime->format('Y');
        

        【讨论】:

          【解决方案5】:

          DateTime 一切都很好,但我们还是老派吧。

          sscanf($date, '%d', $year);
          // or
          $year = strtok($date, '-');
          // or
          $year = substr($date, 0, 4);
          // or
          $year = (int) $date;
          

          ,重新戴上明智的帽子,您可以使用DateTime 或正确使用date()

          $datetime = new DateTime($date);
          $year = $datetime->format('Y');
          // or
          $year = date('Y', strtotime($date));
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-03-29
            • 1970-01-01
            • 1970-01-01
            • 2019-08-02
            • 2012-02-16
            • 2015-02-13
            • 1970-01-01
            • 2019-06-27
            相关资源
            最近更新 更多