【问题标题】:Convert 6 digit number to date将 6 位数字转换为日期
【发布时间】:2021-06-13 08:03:26
【问题描述】:

我正在集成具有 expire_in 键和值 179999 的外部 API。我需要将值转换为日期,以便我可以将当​​前日期与过期日期 (expired_in) 进行比较。从 API 文档中说它在 50 小时内过期。我知道我可以像strtotime('+50 hour') 这样手动创建,但我仍然想知道如何将179999 转换为日期。

我的尝试

\DateTime::createFromFormat('ymd', 179999)->format('Y-m-d')

但它给了我这个结果2025-06-07

【问题讨论】:

  • 对于 179999,您的预计输出日期是什么时候?
  • 也许你的意思是把那几秒加到当前时间上?
  • @Raptor issue_at 2021-03-16 09:26:49 预期输出2021-03-18 11:26:49
  • @Raptor 我不知道关键字add second to time 谢谢

标签: php


【解决方案1】:

将 179999 秒添加到当前日期:

$now = new DateTime();
$now->add(new DateInterval('PT179999S')); // adds 179999 secs
echo $now->format('Y-m-d H:i:s');

【讨论】:

    【解决方案2】:

    创建一个新变量,

    $new = old() + (6 * 23 * 59 * 60);

    6 是天数 23 是小时数 59 是分钟数 60 是秒数

    如果你想使用 CreateFromFormat,

    $format = 'Y-m-d';
    $date = DateTime::createFromFormat($format, '2009-02-15');
    echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
    

    【讨论】:

    • 这与问题完全无关。
    • @Raptor 我不明白它是如何不相关的,它就在那里....
    • 加秒部分在哪里?而数字 179999 甚至不在这里
    • @Raptor 这是他如何做到这一点的一个例子。它增加了几小时而不是几秒
    • OP 不要求增加小时数。
    猜你喜欢
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    相关资源
    最近更新 更多