【问题标题】:How to convert hours to seconds in carbon PHP API extension如何在 carbon PHP API 扩展中将小时转换为秒
【发布时间】:2021-02-16 11:40:50
【问题描述】:

我想转换"2 hours 11 mins"(string) 以秒计的碳 有什么方法可以将该字符串格式转换为碳中的秒数吗? 我被这个卡住了,还没有找到解决方案 提前谢谢你...

【问题讨论】:

    标签: laravel datetime php-carbon datetime-conversion


    【解决方案1】:

    还有第三种方式:

    use Carbon\CarbonInterval;
    
    
     $intervalue=CarbonInterval::make("2 hours 11 mins");
    
    $intervalueInSeconds= $intervalue->totalSeconds;
    

    【讨论】:

    • @Wishwajith Milinda 我建议您将此答案标记为解决方案,这更加明确和易读,并且不必创建 2 个日期。
    【解决方案2】:

    Carbon 有一个有用的modify() 函数:

    https://carbon.nesbot.com/docs/#api-addsub

    此函数可以处理许多“神奇”持续时间来将日期更改为另一个日期。由于Carbon 与时间戳一起使用,您需要一个基础和一个修改过的,然后比较它们:

    $base = Carbon\Carbon::now();                         // 2020-11-03 19:04:49.140462 UTC (+00:00)
    $modified = $base->copy()->modify('2 hours 11 mins'); // 2020-11-03 21:15:49.140462 UTC (+00:00),
    $diff = $base->diffInSeconds($modified);              // 7860
    

    注意:传递给modify() 的字符串可能会失败,但如果失败,您会收到错误消息。

    【讨论】:

      【解决方案3】:

      你不需要碳来做到这一点。使用原生 php 函数。

      1. 使用正则表达式函数获取$hours$minutes
      2. $seconds = $hours*3600 + $minutes*60;

      【讨论】:

      • 该解决方案也可以实现,但我正在寻找碳扩展谢谢
      【解决方案4】:

      PHP 中有一个strtotime() 函数:

      $t = strtotime("2 hours 11 mins");
      echo (time() - $t) . " seconds ago";
      // -7860 seconds ago
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-13
        • 2017-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-01
        相关资源
        最近更新 更多