【问题标题】:php - mktime or strtotime?php - mktime 还是 strtotime?
【发布时间】:2010-02-09 02:29:13
【问题描述】:

我正在尝试将 2010-02 转换为 2010 年 2 月。但是,我一直得到 1969 年 12 月

我尝试过使用 mktime、strtotime 以及两者的某种组合,但仍然无法做到......

这是我最近尝试的...

$path_title = date('F, Y', mktime(0,0,0,2,0,2010));

【问题讨论】:

    标签: php strtotime mktime


    【解决方案1】:

    这是一种方法:

    $dateString = '2010-02';
    list($year, $month) = explode('-', $dateString);
    $timeStamp = mktime(0, 0, 0, $month, 1, $year);
    echo date('F, Y', $timestamp);
    

    另一种方法是:

    $dateString = '2010-02';
    $timestamp = strtotime($dateString . '-01');
    echo date('F, Y', $timestamp);
    

    strtotime 无法处理像“2010-02”这样的模棱两可的日期,但如果你将其设为完整日期,它应该可以工作。

    否则,您可能需要查看 DateTime::createFromFormat 之类的内容。

    【讨论】:

    • 谢谢。对于链接,因为我认为这对将来会有帮助!
    【解决方案2】:

    试试这个:

    $str = '2010-02';
    echo date('F, Y',mktime(0,0,0,substr($str,-2),1,substr($str,0,4)));
    

    您必须确保对mktime() 使用有效值。在您编辑到问题中的示例中,您将 0 作为日期,这实际上是第一天减一,这使您进入上个月。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      相关资源
      最近更新 更多