【问题标题】:PHP - Sum time to current time, best practicePHP - 将时间与当前时间相加,最佳实践
【发布时间】:2012-12-25 12:00:55
【问题描述】:

您好,我正在尝试将时间与当前日期时间相加,此代码似乎有效:

$now = time();
$_day = strtotime('+1day',$now);
$_week = strtotime('+7day',$now);
$_month = strtotime('+1month',$now);
$_year = strtotime('+1year',$now);

我想知道是否有任何其他方法,也许是更好的方法......谁能告诉我新的方法以及我应该转向另一种语法的原因? 我想尽可能准确地做到这一点,所以如果我能反映这个脚本,那就太好了!

谢谢

编辑:

为了清楚我需要使用 unix 时间戳我不需要格式化的日期/日期时间

【问题讨论】:

  • 嗯,有DateTime::addDateInterval >= PHP 5.3.0

标签: php datetime time sum


【解决方案1】:

如果您使用的 PHP 版本允许 (PHP 5 >= 5.3.0) 您使用 DateTimeDateInterval 类,您可以使用它们。

示例:

$dateTime=new DateTime();
$plusDay=new DateInterval('P1D');
var_dump($dateTime->add($plusDay));

$dateTime=new DateTime();
$plusWeek=new DateInterval('P1W');
var_dump($dateTime->add($plusWeek));

$dateTime=new DateTime();
$plusMonth=new DateInterval('P1M');
var_dump($dateTime->add($plusMonth));

我希望这会有所帮助。

【讨论】:

  • 如果你正在运行(PHP 5 >= 5.3.0)
  • 是的,正确的。我没有在帖子中明确提到这一点。但if php version allows.. 暗示 datetime 和 dateinterval 类在旧 php 版本中不可用 :)
  • 这并不是一种侮辱。出于好奇尝试了代码,在这个过程中意识到我的 Xampp 版本需要更新。干杯:)
  • 别担心。我没有受伤 :) 干杯
  • @Badaboooooom 1 年间隔 - $plusYear=new DateInterval('P1Y'); 检查传递给构造函数 php.net/manual/en/dateinterval.construct.php 的字符串语法
【解决方案2】:

我相信strtotime() 就像您在 PHP 中所获得的一样简单。 this SO question 的所有 3 个答案都选择使用该语法,我在网上看到的所有各种教程都使用它。 strtotime() 比其他方法更容易考虑日期算术。

【讨论】:

    【解决方案3】:

    试试这个解决方案:

    date("Y-m-d", strtotime("+1 day"));
    date("Y-m-d", strtotime("+7 days"));
    date("Y-m-d", strtotime("+1 month"));
    date("Y-m-d", strtotime("+1 year"));
    

    【讨论】:

    • 这似乎返回格式化日期,未经测试,但我正在寻找 unix 时间戳
    • @imRcH 很抱歉投了反对票。它是偶然发生的。您能否对您的答案进行一些更改,然后我可以避免这种不必要的反对票。
    猜你喜欢
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    相关资源
    最近更新 更多