【问题标题】:Carbon - standardising datetime碳 - 标准化日期时间
【发布时间】:2018-03-16 14:04:26
【问题描述】:

我正在处理一些数据迁移过程,其中包含大量 CSV

我现在面临的问题是我正在使用的数据文件有 2 列,即“日期”和“时间”。现在,日期本身没有问题。我的“时间”列可以采用任何格式,即H:iH:i:s。无论格式如何,我都希望我的输出为d/m/Y H:i:s,如果没有给出秒数,则只附加 00。

Carbon 的 createFromFormat 要求我指定我的输入格式,而我不能。目前我正在做的是使用Excel将我的CSV文件按照时间格式拆分成不同的文件,然后分别导入,但是时间太长了。

我似乎也找不到允许我这样做的功能:

if(getSecondsFromTime){
  Carbon::createFromFormat($string, 'd/m/Y H:i:s');
}else{
  Carbon::createFromFormat($string, 'd/m/Y H:i');
}

Carbon/PHP Datetime 是否有一个我不知道的功能可以做到这一点?还是我必须解决正则表达式才能做我需要的事情?

【问题讨论】:

    标签: php laravel csv php-carbon


    【解决方案1】:

    如果您将/ 替换为-,则Carbon::parse 将起作用:

    $t = '05/10/2017 18:00';
    $c = Carbon::parse(str_replace('/', '-', $t));
    

    【讨论】:

    • 我希望 Carbon 有一个功能,而不是诉诸正则表达式
    猜你喜欢
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2017-11-28
    • 2018-03-14
    • 2021-07-11
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多