返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >在 PHP 中比较日期的不同方法
  • 674
分享到

在 PHP 中比较日期的不同方法

2024-02-27 20:02:49 674人浏览 八月长安
摘要

本文将教你如何使用 5 种不同的技术在 PHP 中比较日期。在这些技术中,有 4 种将以一种或另一种形式使用内置的 php 函数,如 strtotime()、time() 和 date()。最后一种技术

本文将教你如何使用 5 种不同的技术在 PHP 中比较日期。在这些技术中,有 4 种将以一种或另一种形式使用内置的 php 函数,如 strtotime()time()date()。最后一种技术将使用 PHP DateTime 对象。

strtotime()time() 比较日期

strtotime() 是 PHP 中内置的时间函数。它的主要用途是将一串人类可读的日期转换为相等的 UNIX 时间戳。它可以解析各种字符串并将它们转换为适当的时间戳。此类字符串的示例是 2 weeks aGonext week

PHP time() 函数返回当前时间。这个时间是自 UNIX 纪元以来的秒数。如果你需要将这些秒数转换为当前日期,则需要 PHP 的内置 date() 函数。

结合这两个功能时,你可以使用以下步骤比较日期。

首先,你向 strtotime() 提供一个日期字符串。它将把它转换成它的 UNIX 时间戳。

使用 time() 函数从当前时间中减去此 UNIX 时间戳。

你可以使用此计算的结果和条件检查来比较日期。


<?php
  $dateString = '2021-12-12 21:00:00';

  // This will check if the time
  // is in the last day
  if ((time() - (60 * 60 * 24)) < strtotime($dateString)) {
      echo "Date in the last 24hrs";
  } else {
      echo "Date is <b>NOT</b> in the last 24hrs";
  }
?>

输出:


Date is <b>NOT</b> in the last 24hrs

使用 Date() 函数和条件检查比较日期

PHP 的 date() 函数允许你将时间戳格式化为你想要的格式。有问题的时间戳是当前时间和 UNIX 纪元之间的秒数。UNIX 纪元是从 1970 年 1 月 1 日午夜开始的时间。

date() 函数的值取决于你的 php.ini 文件中设置的时区。

如果要使用 date() 函数比较给定日期,请执行以下操作。


<?php
  $todaysDate = date("Y-m-d H:i:s");
  $dateString = "2021-10-12 10:00:00";
  
  if ($dateString < $todaysDate) {
      echo "The date you supplied is LESS than the current date";
  } else {
      echo "The date you supplied is NOT LESS than the current date";
  }
?>

输出:


The date you supplied is LESS than the current date

使用自定义函数比较日期

你使用函数来避免代码重复。本教程中的第一个示例展示了如何将日期与 strtotime()time() 进行比较。

在这种情况下,你将创建一个函数。此函数将接受日期字符串作为参数,然后将其传递给 strtotime()。你将字符串 "today" 传递给函数内的另一个 strtotime()

现在,你有两件事可以比较,它们是,

你可以使用严格比较来将日期与这些标准进行比较。你可以创建一个比较函数来检查以下内容。

以下将检查提供的日期字符串是否为当前日期:


<?php
  function checkToday($time) {
      $convertToUNIXtime = strtotime($time);
      $todayUNIXtime = strtotime('today');
  
      return $convertToUNIXtime === $todayUNIXtime;
  }
  
  if (checkToday('2021-12-13')) {
      echo "Yeah it's today";
  } else {
      echo "No, it's not today";
  }
?>

输出:


No, it's not today

检查过去的日期。


<?php
  function checkThePast($time) {
      $convertToUNIXtime = strtotime($time);
  
      return $convertToUNIXtime < time();
  }
  
  if (checkThePast('2021-12-13 22:00:00')) {
      echo "The date is in the past";
  } else {
      echo "No, it's not in the past";
  }
?>

输出:


The date is in the past

你可以通过以下方式检查未来的日期。


<?php
  function checkTheFuture($time) {
      $convertToUNIXtime = strtotime($time);
  
      return $convertToUNIXtime > time();
  }
  
  if (checkTheFuture('2021-12-13 22:00:00')) {
      echo "The date is in the future";
  } else {
      echo "No, it's not in the future";
  }
?>

输出:


No, it's not in the future

使用 PHP Datetime 对象比较日期

PHP DateTime 类为我们提供了一种面向对象的方式来处理 PHP 中的日期字符串。它有一套你可以使用的方法。它封装了场景背后的一些逻辑,并为你提供了一个干净的界面来使用。

strtotime()date() 相比,DateTime 具有以下优点:

当你打算将日期与 DateTime 进行比较时,请执行以下操作。


<?php
  $firstDate = new DateTime("2020-12-13");
  $secondDate = new DateTime("2021-12-13");
  
  // Compare the date using operators
  if ($firstDate > $secondDate) {
      echo "First date is GREATER than the second date";
  } else if ($firstDate < $secondDate) {
      echo "First date is LESS than the second date";
  } else {
      echo "First and second dates are EQUAL";
  }
?>

输出:


First date is LESS than the second date

Arsort()strtotime() 进行多个日期的比较

如果要比较多个日期字符串,可以将它们存储在数组中。

使用数组中的日期,你可以使用合适的循环方法来处理数组。例如,foreach

foreach 内的循环中,你可以使用 strtotime() 将每个日期转换为它们的 UNIX 时间戳。之后,你可以使用 arsort() 对日期进行排序


<?php
  // Store the dates
  $dateArray = ["2020-09-30", "2021-12-13", "2021-08-05"];
  
  // Convert each date to a UNIX timestamp
  // and store them in another array
  $dateArrayTimestamp = [];
  foreach ($dateArray as $date) {
      $dateArrayTimestamp[] = strtotime($date);
  }
  
  // Sort the dates,
  arsort($dateArrayTimestamp);
  
  // Print the date starting with the
  // current date
  foreach ($dateArrayTimestamp as $key => $value) {
      echo "$key - " . date("Y - m - d", $value) . "<br>";
  }
?>

输出:


1 - 2021 - 12 - 13<br>2 - 2021 - 08 - 05<br>0 - 2020 - 09 - 30<br>

--结束END--

本文标题: 在 PHP 中比较日期的不同方法

本文链接: https://lsjlt.com/news/568979.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在 PHP 中比较日期的不同方法
    本文将教你如何使用 5 种不同的技术在 PHP 中比较日期。在这些技术中,有 4 种将以一种或另一种形式使用内置的 PHP 函数,如 strtotime()、time() 和 date()。最后一种技术...
    99+
    2024-02-27
  • Java8中日期比较方法有哪些
    这篇文章将为大家详细讲解有关Java8中日期比较方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 Java 8日期比较方法在Java 8中,可以使用新的...
    99+
    2024-04-02
  • 怎么在JavaScript中比较日期
    本文小编为大家详细介绍“怎么在JavaScript中比较日期”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么在JavaScript中比较日期”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。如何在 JavaScr...
    99+
    2023-07-04
  • Python 比较两个日期的多种方法!
    人生苦短,快学Python!datetime如果需要用Python处理日期和时间,大家肯定会先想到datetime、time、calendar等模块。在这其中,datetime模块主要是用来表示日期时间的,就是我们常说的年月日/时分秒。da...
    99+
    2023-05-14
    Python 命令 日期
  • 比较 PHP 中去除数组重复元素的不同方法
    php 中去除数组重复元素的方法有多种,包括:使用 array_unique() 函数(返回新数组,仅包含唯一值)、使用 array_flip() 和 array_keys() 函数(通...
    99+
    2024-04-27
    php 数组去重
  • C# DateTime日期比较方法案例详解
    之前做到日期时间的时候,有许多格式问题和日期时间比较问题,以及相关条件约束,因为不熟悉这个,浪费许多时间,查找相关资料,记录,以作备用。 1. Convert.ToDateTime ...
    99+
    2024-04-02
  • PHP 函数在不同场合的使用比较
    php 中的函数可用于执行各种任务,包括数组操作(array_merge()、array_filter())、字符串操作(strtoupper()、substr())、时间操作...
    99+
    2024-04-13
    函数 php
  • Ruby日期时间的比较,日期转换等时间日期处理方法大全
    Ruby中Date、Time、 DateTime这3个类提供 了和日期时间相关的操作。 Date只能处理日期Time能处理日期和时间DateTime也能处理日期和时间 其中,Date...
    99+
    2024-04-02
  • 比较PHP中不同数组交集和并集方法的性能
    分析结果显示:对于简单交集运算,array_intersect() 性能最佳;对于自定义比较交集运算,array_uintersect() 性能最佳;对于简单并集运算,array_uni...
    99+
    2024-05-03
    php 数组交集 数组并集
  • Python比较两个日期的两种方法详解
    目录datetimestrptime之前我们曾经分享过:Python获取某一日期是“星期几”的6种方法!实际上,在我们使用Python处理日期/时间的时候,经...
    99+
    2024-04-02
  • php如何比较数组值的不同
    本文小编为大家详细介绍“php如何比较数组值的不同”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何比较数组值的不同”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。两种比较方法:1、使用array_diff...
    99+
    2023-07-05
  • java中的日期和时间比较大小
    目录日期和时间比较大小java中日期如何比较大小java中时间如何比较大小比较两个日期时间,比较两个日期大小LocalDateTimeDateTimeFormatter日期和时间比较...
    99+
    2022-11-13
    java日期 java时间 日期时间
  • 比较了不同方式下的本地存储方法
    本地存储:不同方式下的localstorage保存方法对比 在现代Web开发中,本地存储是一项非常重要的技术,它可以使我们将数据保存到用户的浏览器中,以便之后可以方便地获取和使用。在本文中,我们将重点讨论使用localstora...
    99+
    2024-01-15
    对比 保存方法
  • 如何在Linux中比较两个目录的不同
    这篇文章将为大家详细讲解有关如何在Linux中比较两个目录的不同,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。目录结构。[root@node1 ~]# tree ...
    99+
    2023-06-09
  • php比较两个指定的日期的实例讲解
    1、给定的日期格式相同,则使用简单的比较运算符来比较日期。 <?php //声明两个日期、初始化 $date1 = "2021-11-24"; $date2 = "...
    99+
    2024-04-02
  • 在Python中比较列表的方法
    这篇文章将为大家详细讲解有关在Python中比较列表的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。比较列表在Python中,我们可以对list取交集、差集来比较两个...
    99+
    2024-04-02
  • 怎么在linux 中比较两个文件夹不同
    怎么在linux 中比较两个文件夹不同?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。比较文件夹diff,可以直接使用diff命令[root@~]# diff -...
    99+
    2023-06-09
  • MySQL根据出生日期计算年龄的五种方法比较
    方法一 SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age 缺陷,当日期为未来日期时结果为0,而不是负数; 这里用了5个函数和...
    99+
    2023-08-31
    mysql 数据库
  • 不同 PHP 版本中函数性能的比较和优化
    php函数性能比较显示php 7.4.0在str_replace()、strtoupper()、array_merge()和json_encode()上表现最佳,而php 5.6.40表...
    99+
    2024-04-11
    性能 优化 php
  • 比较 PHP 函数参数类型的不同实现
    php 函数参数类型可通过类型声明、类型暗示或类型强制转换实现。类型声明强制要求特定类型,提供最佳类型安全性。类型暗示告知预期类型,但允许不同类型。类型强制转换显式转换运行时类型,以确保...
    99+
    2024-04-21
    php 函数参数类型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作