【问题标题】:Convert a date DD-MM-YY and HH:MM vars to RFC-822 using PHP使用 PHP 将日期 DD-MM-YY 和 HH:MM vars 转换为 RFC-822
【发布时间】:2012-12-25 09:01:29
【问题描述】:

我有一个包含以下格式数据的日期变量:DD-MM-YY。 -> $日期

我还有另一个包含 HH:MM 时间的变量。 -> $时间

我想将其转换为 RFC-822 以便在 RSS 提要中使用。

如何使用 PHP 实现这一点?

【问题讨论】:

    标签: php


    【解决方案1】:

    试试这个:

    function RFC2822($date, $time = '00:00') {
        list($d, $m, $y) = explode('-', $date);
        list($h, $i) = explode(':', $time);
    
        return date('r', mktime($h,$i,0,$m,$d,$y));
    }
    
    $date = '30-12-2009';
    $time = '11:30';
    
    echo RFC2822($date, $time);
    

    会输出如下内容:

    2009 年 12 月 30 日星期三 11:30:00 +0200

    函数的第二个参数是可选的,你可以只提供日期,它仍然可以工作。

    【讨论】:

      【解决方案2】:

      尝试类似:

      <?php
      $date = '11-01-09'; // Jan 11th, 2009
      $time = '21:30';
      
      // Correct the invalid order of the date
      $date_parts = array_reverse(explode("-", $date));
      $date = implode('-', $date_parts);
      
      // Set up the format
      $timestamp = strtotime($date . " " . $time);
      $rss_datetime = date(DATE_RFC2822, $timestamp);
      
      echo $rss_datetime;
      ?>
      

      【讨论】:

        【解决方案3】:
        $date = "DD-MM-YY HH:MM"; // your date with or without hour and minutes
        
        $time = strtotime($date);
        
        $rfc_time = date("r", $time);
        

        【讨论】:

        • 这对我不起作用。使用$date = "11-12-09 12:22",我得到输出Fri, 09 Dec 2011 12:22:00 +0000strtotime 正在将输入读取为 YY-MM-DD。
        • 谢谢,但此解决方案会生成以下内容。即:$日期=“30-12-09 07:15”; $rfc_time --> Mon, 09 Dec 2030 07:15:00 -0800 所以它不适用于 DD-MM-YY
        • 那你应该自己解析日期
        猜你喜欢
        • 2013-10-25
        • 1970-01-01
        • 1970-01-01
        • 2016-02-14
        • 1970-01-01
        • 1970-01-01
        • 2022-01-25
        • 2012-03-05
        • 2020-12-18
        相关资源
        最近更新 更多