dongpu1908 2018-01-30 14:55
浏览 45
已采纳

将PHP DateInterval转换为期间规范[重复]

This question already has an answer here:

Using PHP, I want to be able to go from a strtotime relative time to a datetime interval that can be used for an iCalendar duration.

An example would be something like:

$date = \DateInterval::createFromString('5 minutes');
$period = $date->doSomeMagic();
echo $period; // should echo "PT5M"

Are there any built-in PHP functions to do this? Or if there aren't, is there a library that can do it?

</div>
  • 写回答

1条回答 默认 最新

  • dongqiya9552 2018-01-30 15:15
    关注

    Perhaps something like this

    $date = \DateInterval::createFromDateString('2 days 5 minutes');
    
    function doSomeMagic(\DateInterval $date) {
        $interval = 'P' .
            ($date->y == 0 ? null : $date->y . 'Y') .
            ($date->m == 0 ? null : $date->m . 'M') .
            ($date->d == 0 ? null : $date->d . 'D');
        $timeInterval =
            ($date->h == 0 ? null : $date->h . 'H') .
            ($date->i == 0 ? null : $date->i . 'M') .
            ($date->s == 0 ? null : $date->y . 'S');
        return $interval . ((!empty($timeInterval)) ? 'T' . $timeInterval : null);
    }
    
    
    $period = doSomeMagic($date);
    echo $period;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?