【问题标题】:How to get date fields in php? [duplicate]如何在php中获取日期字段? [复制]
【发布时间】:2013-08-12 08:59:18
【问题描述】:

如何在 php 中获取日期的值? 例如我有一个这样的日期:

$date = "2013-01-29";

我想要的是获取年月日并将其分配到变量中。

示例:

$year = "2013";

$month = "01";

$day = "29";

我该怎么做?

【问题讨论】:

    标签: php


    【解决方案1】:

    比@TobSpr 更多的OOP 方式是使用DateTime

    $date = "2013-01-29";
    $dt = new DateTime($date);
    
    echo $dt->format('Y');
    

    这样做的好处是我们可以完全控制日期,我们甚至可以指定特定的时区,处理格式错误的输入日期字符串(DateTime __construct 会在无法解析的输入上抛出异常)

    $date = "2013-01-29 invalid";
    try {
        $dt = new DateTime($date);
        echo $dt->format('Y');
    } catch (Exception $e) {
        printf('Failed to decode input date "%s", PHP said: %s', $date, $e->getMessage());
    }
    

    有关您可以发送到DateTime::format 的信息,请参阅date

    【讨论】:

    • +1 表示迄今为止发布的唯一有效答案。
    • +1 我从没见过,但它听起来是更好的解决方案
    【解决方案2】:
    $date = new DateTime('2013-01-29');
    echo $date->format("Y");
    echo $date->format("m");
    echo $date->format("d");
    

    【讨论】:

    • 感谢您的回答。
    【解决方案3】:

    使用strtotime(),它将各种格式的字符串转换为日期。它可以检测各种格式的日期:

    $date_unix = strtotime($date);
    $year = date("Y", $date_unix);
    $month = date("m", $date_unix);
    $day = date("d", $date_unix);
    

    有关所有修饰符的列表,另请参阅 date()

    【讨论】:

      【解决方案4】:

      简单

      $newdate=explode("-",$date);
      $day=$newdate[2];
      $month=$newdate[1];
      $year=$newdate[0];
      

      【讨论】:

      • 这不是解决方案的正确方法..
      • 好的....谢谢您的宝贵意见.....我不认为只有一个解决方案。
      【解决方案5】:

      在 php 中,您可以通过以下方式进行操作 $date="2013-01-29"; $tem=explode("-",$date); $年=$tem[0]; $月=$temp[1]; $day=$temp[2];

      【讨论】:

        猜你喜欢
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-22
        • 2012-12-05
        • 2013-07-23
        • 2018-02-21
        相关资源
        最近更新 更多