自那以来的分钟数

时间:2018-05-18 15:10:30

标签: php

我正在寻找一种简单的方法来获取自日期时间以来的分钟数。我尝试了多种想法,但格式与预期的格式不同,dd/mm/yyyy hh:mm:ss(例如18/05/2018 15:00:11)。我尝试将字符串转换为正确格式的日期,但它仍然失败。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

当我执行以下代码时:

<?php
  echo strtotime(str_replace("/", "-", "18/05/2018 15:00:11");
?>

我明白了:

1526670011

这样,尝试使用日期和时间的正常语法,并以这种方式获得两次:

<?php
  echo strtotime(str_replace("/", "-", "18/05/2018 14:00:00"));
  echo "<br />";
  echo strtotime(str_replace("/", "-", "18/05/2018 15:00:00"));
  echo "<br />";
  echo strtotime(str_replace("/", "-", "18/05/2018 15:00:00")) - strtotime(str_replace("/", "-", "18/05/2018 14:00:00"));
?>

你会在几秒钟内完成。

1526666400
1526670000
3600

将它们除以60,将它们转换为分钟。

<?php
  $start = "18/05/2018 14:00:00";
  $end   = "18/05/2018 15:00:00";

  echo strtotime(str_replace("/", "-", $start));
  echo "<br />";
  echo strtotime(str_replace("/", "-", $end));
  echo "<br />";
  echo strtotime(str_replace("/", "-", $end)) - strtotime(str_replace("/", "-", $start)) . " seconds";
  echo "<br />";
  echo (strtotime(str_replace("/", "-", $end)) - strtotime(str_replace("/", "-", $start)))/60 . " minutes";

你会得到类似的东西:

1526666400
1526670000
3600 seconds
60 minutes

希望这有帮助。

答案 1 :(得分:0)

查看Carbon,这将是您最后一次需要的api扩展程序。你可以使用 - &gt; diffForHumans();选择和大量其他事情,如果你处理时间和日期很多,将使你的生活更轻松。

答案 2 :(得分:0)

只需使用DateTime::createFromFormat()

作为一个单行:

echo floor(((new DateTime())->getTimestamp() - DateTime::createFromFormat('d/m/Y H:i:s', '18/05/2018 15:00:11')->getTimestamp()) / 60);


或者更容易理解的东西 - 评论:

// your timestring in d/m/Y H:i:s format
$myTimeString = '18/05/2018 15:00:11';

// convert your timestring to a DateTime object
$myDateTime = DateTime::createFromFormat('d/m/Y H:i:s', $myTimeString);

// create a DateTime object for "now"
$now = new DateTime();

// use the timestamps to create a difference, in seconds
// between now and your DateTime
$diff = $now->getTimestamp() - $myDateTime->getTimestamp();

// convert it to whole minutes (rounded down) and echo out
echo floor($diff / 60);


你也可以使用DateTime::diff(),但这会给你一个代表差异的DateInterval对象,而不仅仅是总分钟数。