【问题标题】:how to reverse mktime() function in PHP?如何在 PHP 中反转 mktime() 函数?
【发布时间】:2026-01-23 20:35:01
【问题描述】:

我正在使用以下将时间转换为整数

mktime(hour,minute,second,month,day,year)

我将如何扭转这一点以获得所需的日期?目前我不需要 Minutes 或 Seconds,所以我为它们使用 Zeroes '0'。任何建议将不胜感激。

谢谢。

【问题讨论】:

    标签: php function time reverse mktime


    【解决方案1】:

    使用function date()

    $yourtime = mktime(...);
    date("d/m/Y h", $yourtime);
    

    【讨论】:

    • date('Y-m-d H:00:00', $yourtime);
    • 这不是正确的反转,它会从 unix 时间戳返回一组整数,而不是字符串。
    【解决方案2】:

    如果您的数据来自 HTML 表单,您可以使用它来代替 mktime():

    $time = strtotime($_GET['time']);
    $rounded = $time - $time % 3600; // rounds down to the last hour
    

    然后只需使用:

    date ('Y-m-d',$rounded);
    

    显示日期。

    【讨论】:

    • 感谢您的建议,但我需要那个时间在 unix 时间戳的 INT 值中
    • thanks stillstanding,strtotime() 实际上为我简化了一大堆东西,非常感谢,这对另一个页面有很大的帮助。
    • gmdate 将始终返回 GMT 时间(还有几个其他 GMT 转换函数,例如 gmmktimegmstrftime。请记住,Unix 时间戳始终以 UTC/GMT 表示.
    【解决方案3】:

    您可能正在寻找getdate(),它返回包含秒、分钟、小时等的关联数组。

    // make some time value
    $time = time();
    // get date components
    $d = getdate($time);
    // make a new time value with time values reset
    $time = mktime(0, 0, 0, $d[‘mon’], $d[‘mday’], $d[‘year’]);
    

    您可能想查看idate(),它返回与date() 相同的值,但作为整数而不是字符串,如果您实际上不需要字符串,它可能会更好地执行。

    【讨论】: