PHP <= 5.1.6 的字符串到时间(DateTime::CreateFromFormat 不可用)?

发布于 2024-11-24 18:32:12 字数 482 浏览 1 评论 0 原文

我所需要的只是比较由 dmy 格式的字符串值表示的日期(例如今天的 15.07.11)。

不幸的是,strtotime 给了我错误的结果(可能是由于格式的原因)。我找到了我的问题的答案(PHP strtotime 错误转换)但是DateTime::CreateFromFormat 在我的 PHP 版本中不可用。我找不到 strfptime 但认为答案的作者意味着 strptimestrptime 的结果是一个数组。我很惊讶我可以比较数组,但比较结果无效。

将给定字符串格式的日期与 PHP <= 5.1.6 进行比较的最简单方法是什么?

All I need is to compare dates represented by string values in the format d.m.y (e.g. 15.07.11 for today).

strtotime unfortunatelly gives me wrong results (probably because of the format). I found a answer to my question (PHP strtotime incorrect conversion) but DateTime::CreateFromFormat is not available in my PHP version. I could not find strfptime but think the autor of the answer meant strptime. The result of strptime is a array. I was surprised that I can compare arrays but the compare result is not valid.

What would be the easiest way to compare dates in the given string format with PHP <= 5.1.6?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

↙厌世 2024-12-01 18:32:12

您始终可以将 strptime 的结果传递给 mktime 并获取可用的 Unix 时间戳,您可以将其比较或提供给 DateTime 对象。

<?php
    $d = strptime('15.07.11', '%d.%m.%y');
    $timestamp = mktime($d['tm_hour'], $d['tm_min'], $d['tm_sec'], $d['tm_mon'], $d['tm_mday'], 1900 + $d['tm_year']);
    echo date("j F Y", $timestamp);
?>

唯一需要注意的是 strptime 给出的年份是自 1900 年以来的年数,而 mk_time 只需要一个年份数字,所以我在其中添加了 1900。

You could always pass the result of strptime to mktime and get a usable Unix timestamp which you can compare or feed to the DateTime objects.

<?php
    $d = strptime('15.07.11', '%d.%m.%y');
    $timestamp = mktime($d['tm_hour'], $d['tm_min'], $d['tm_sec'], $d['tm_mon'], $d['tm_mday'], 1900 + $d['tm_year']);
    echo date("j F Y", $timestamp);
?>

The only thing to watch for is that strptime gives the year as the number of years since 1900, and mk_time just takes a year number, so I added 1900 to it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文