【问题标题】:How to fetch date from string format如何从字符串格式中获取日期
【发布时间】:2014-09-18 07:59:10
【问题描述】:

我们在数据库中有一个事件时间条目为P1DT3H53M45S,这意味着 1 天 3 小时 53 分 45 秒。我想从这种格式中检索日期。

我可以通过分解这个字符串和计算来检索剩余的持续时间,然后添加到当前时间并创建日期。

除了爆炸之外,还有更好的方法来找到剩余的持续时间吗?

【问题讨论】:

  • 正则表达式,我猜会更好
  • 我不明白你怎么能分解P1DT3H53M45S这样的字符串。用什么分隔符?
  • 如果可以更改,Unix时间更好恕我直言
  • 这只是一个DateInterval 格式...为什么不将它传递给它的构造函数...

标签: php string date


【解决方案1】:

不需要爆炸。请改用DateInterval

$interval = new DateInterval('P1DT3H53M45S');
echo $interval->format('%d day, %h hours, %I minutes, %s seconds');
// 1 day, 3 hours, 53 minutes, 45 seconds

【讨论】:

    【解决方案2】:

    P1DT3H53M45S 不是日期,而是间隔。您可以使用 DateInterval 类创建一个 DateInterval 对象,您可以从中对其进行格式化,或将其添加到您的某些日期中。

    $interval = new DateInterval('P1DT3H53M45S');
    print_r($interval);
    
    # format it
    echo $interval->format('%d days, %h hours, %i minutes, %s seconds');
    
    # add it to some date
    $dt = new DateTime;
    $dt->add($interval);
    echo $dt->format('Y-m-d H:i:s');
    

    demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 2018-03-13
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多