【问题标题】:PHP Date Export To CSV FormatPHP 日期导出为 CSV 格式
【发布时间】:2014-10-07 14:18:03
【问题描述】:

导出后,当我打开 CSV 时,您会注意到 L 列仅正确格式化了一些日期。这也发生在其他几个日期列上。我可以用 PHP 做些什么来确保正确返回所有日期吗?下面是我的函数:

public function formatDateCI($date) {

    // If Birthdate Column
    if(strlen($date) == 10){
        $date = explode('-',$date);
        $m = $date[0];
        $d = $date[1];
        $Y = $date[2];
        $date = $Y.'-'.$m.'-'.$d;
    }

    $date = new DateTime($date);
    // Final Format 1983-24-12 00:00:00
    return date_format($date, 'Y-d-m H:i:s');
}

【问题讨论】:

  • $date变量如果不进入If条件会怎么样?
  • $date 是否来自数据库中的日期时间列?
  • Gabriel,如果它不进入if条件它看起来像2014-08-07 21:04:19,Riggs,数据库中的brithdate列不是日期时间。其他列是日期时间
  • 但我仍然在日期时间的其他列上看到相同的问题
  • 这是否意味着birthdatedate

标签: php datetime csv export-to-csv date-formatting


【解决方案1】:

试试:

date('Y-m-d H:i:s', strtotime($date));

代替:

$date = new DateTime($date);

>

一定要尝试 if else 结构:

if(strlen($date) == 10){
        $date = explode('-',$date);
        $M= $date[0];
        $D = $date[1];
        $Y = $date[2];
       //this $date = $Y.'-'.$m.'-'.$d;
       //or this =>
       $date = date('Y-m-d H:i:s', mktime($h, $m, $s, $M, $D, $Y));
    }else{
         $date = date('Y-m-d H:i:s', strtotime($date));
    }

    return $date;

【讨论】:

  • 这也有效,但有些生日返回为 1970-01-01 00:00:00
  • @Hector 你需要有一个统一的日期格式,试试 if else 结构,比如看我的编辑
【解决方案2】:

简单的解决方案就是这样做

public function formatDateCI($date) {
    return date('%Y-%m-%d 00:00:00', strtotime($date));
}

在这种情况下,您可能甚至不需要将其设为方法,因为它可以很好地适合调用代码。

附加信息

如果您使用的是美国日期格式,则必须更正 strtotime() 的格式,因为它希望美国格式日期具有 / 分隔符而不是 - 分隔符。如果它看到 - 分隔符,它需要某种逻辑日期格式。

public function formatDateCI($date) {
    // correct USA date format for strtotime
    $date = str_replace('-','/',$date);
    return date('%Y-%m-%d 00:00:00', strtotime($date));
}

【讨论】:

  • 调用未定义函数 strtodate()
  • 对不起,我的糟糕,更正为strtotime() 我想我不应该在晚餐时喝那品脱。
  • 谢谢,这对数据库中所有日期时间的列都有效,但现在许多出生日期字段返回为 1970-01-01 00:00:00
  • 生日列到底是什么,举一些例子,哪里出了问题?
  • 如果birthdate 是可选字段,即用户可以将其留空吗?如果是这样,您的数据库为该列设置的默认值是什么。
猜你喜欢
  • 2020-08-30
  • 2014-07-20
  • 1970-01-01
  • 2018-02-13
  • 2021-03-12
  • 2012-07-23
  • 1970-01-01
  • 2017-08-27
  • 2017-12-17
相关资源
最近更新 更多