如何使用 PHP 获取午夜之前的小时数

2023-12-31

设想:一条记录已输入数据库。

我试图找出以下方程:

  1. 如何获取自添加记录以来的小时数。
  2. 如何获取自记录以来到午夜还剩多少小时 加入。

鉴于这些时间:

  • 日期/时间: 2012-08-22 20:11:20
  • 时间戳:1345684280
  • 今晚午夜:2012-08-23 00:00:00
  • 午夜时间戳:1345698000

我觉得我走在正确的轨道上。只需要一些适当的数学来进行计算?我数学很糟糕。任何帮助或指导将不胜感激。我不是在找人来帮我完成这件事。只是寻求有关我做错了什么或如何做得更好的建议。也许解释一下实现我的目标所需的数学公式。

这是我到目前为止所拥有的:

class tools{

    public function __construct(){
    }

    public function check_time($time, $request){
        $time = strtotime($time);
        if($request == 'since'){
            $theTime = time() - $time;
            $prefix = 'Since:';
        } elseif($request == 'until'){
            $midnight = mktime(0, 0, 0, date('n'), date('j'), date('Y'));
            $theTime = $midnight - $time;
            $prefix = 'Until:'; 
        }

        $tokens = array (
            31536000 => 'year',
            2592000 => 'month',
            604800 => 'week',
            86400 => 'day',
            3600 => 'hour',
            60 => 'minute',
            1 => 'second'
        );

        foreach($tokens as $unit => $text){
            if($theTime < $unit) continue;
            $duration = floor($theTime / $unit);
            return $prefix.' '.$duration.' '.$text.(($duration>1)?'s':'');
        }
    }
}// EoF tools class

$tools = new tools();

print_r($tools->check_time('2012-08-22 20:11:20', 'since'));
print_r($tools->check_time('2012-08-22 20:11:20', 'until'));

这里的解决方案非常简单。有一个小错误导致了您的所有问题。

在您的代码中,您可以用它来计算午夜。

$midnight = mktime(0, 0, 0, date('n'), date('j'), date('Y'));

这是不正确的,因为它使用的是今天的午夜(今天是 00:00,无论多少小时前。您需要明天的午夜,因为它被认为是 24 小时时间的 00:00,并且是明天。正确的方法就像这样:

$midnight = strtotime("tomorrow 00:00:00");

请记住,strtotime() 的所有内容均基于 GMT,因此请确保在文件/应用程序中设置默认时区。

我希望我的答案很清楚,并解释了为什么您发布的代码是错误的以及如何修复它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PHP 获取午夜之前的小时数 的相关文章

  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中
  • 免费 PHP 登录库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • jQuery ajax 调用包含重音字符的 url 将错误的 Uri 从 IE 发送到服务器

    我在使用 IE 发送包含重音字符的 url 时遇到问题 这是一个简单的函数 function runjQueryTest var url test Beyonc get url function 在服务器 PHP 上我记录了请求uri的值
  • 是否可以将路由参数传递给 Laravel 中的控制器构造函数?

    是否可以将路由参数 或路由段 注入到控制器构造函数中 您找到一些代码来澄清我的问题 class TestController protected param public function construct paramFromRoute
  • 如何使用 PHP 构建正确的 SOAP 请求

    我需要格式化 构建此 SOAP 服务 的请求 http api notificationmessaging com NMSOAP NotificationService wsdl http api notificationmessaging
  • CakePHP 视图包括其他视图

    我有一个 CakePHP 应用程序 在某些时候会显示带有产品媒体 图片或视频 的视图 我想知道是否有某种方式可以包含另一个威胁视频或威胁图片的视图 具体取决于标志 我想将这些 小视图 用于其他几个目的 所以它应该 像 蛋糕组件一样 以便重用
  • 使用 JavaScript 比较两个日期未按预期工作[重复]

    这个问题在这里已经有答案了 这是我的 JavaScript 代码 var prevDate new Date 1 25 2011 the string contains a date which comes from a server si
  • Laravel Vue 组件只能传递数字?

    在我的 UserMenu vue 中我写道 export default props nameVal data return 并在blade php中
  • 带倒计时的php循环

    假设我从 400 开始计数器 我将如何执行一个向后运行直到 0 的 foreach 循环 伪代码 i 400 foreach SOMETHING do stuff i for i 400 i gt 0 i do stuff 其他方法 i 4
  • CodeIgniter:My_Lang 中的 get_instance

    我发现这个有用的国际化代码 http pastebin com SyKmPYTX http pastebin com SyKmPYTX 一切正常 除了我无法在此类中使用 CI 函数 我想从 DB 设置 languages 和 special
  • PHP 中的 -> 和 :: 有什么区别?

    这个东西困扰我好久了 一直找不到 在 php 中使用 和 gt 之间的类有什么区别 让我举个例子 想象一个名为 MyClass 的类 该类中有一个函数 myFunction 使用有什么区别 MyClass myclass new MyCla
  • PHP 检查当前日期是在设定日期之前还是之后

    我从数据库中提取一个日期 其格式为 dd mm YYYY 我想做的是检查当前日期 如果当前日期早于数据库中的日期 则需要打印数据库日期 如果是在之后 则需要打印 继续 有人能指出我正确的方向吗 if strtotime database d
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4

随机推荐

  • string::size_type 而不是 int

    const std string size type cols greeting size pad 2 2 Why string size type int应该可以工作 它包含数字 空头也能容纳数字 与签名字符一样 但这些类型都不能保证足够
  • 当委托构造函数抛出异常时,内存是否会自动回收?

    从此 当委托构造函数抛出异常时 析构函数是否被调用 https stackoverflow com q 17657761 14065 class X public X X int X throw std exception X double
  • 将 GitHub 文件(和更新)获取到 Ubuntu Web 服务器上

    我正在设置一个多用户 多服务器环境 所有开发人员都将使用 Git 并从 GitHub 等克隆各种存储库 在我控制的一个帐户中 现在 我如何将文件从 GitHub 获取到服务器 大约 5 个 首先 我正在考虑某种自动化方式将更新从 GutHu
  • SSRS 报告查看器 + ASP.NET 凭据 401 异常

    我在 SQL2005 报告服务器上保存了一份报告 我想返回该报告的渲染 PDF 我在使用本地 rdlc 文件时发现了这一点 我已经在博客上介绍过它 http www jarrettmeyer com 2009 09 reports in a
  • Jest - “child_process”包中的模拟函数

    我正在编写单元测试 并模拟包 child process 中的 exec 方法 mocks child process js const child process jest genMockFromModule child process
  • C 将内存部分移动到位

    我正在实现几个数据结构 我想要使用的一个原语如下 我有一个内存块 A N 它的长度可变 但我在示例中使用 100 在这个块内 有一个较小的部分C 长度为 K 假设为 30 我想在不使用任何额外内存的情况下移动它 额外的困难是 A 换行 即C
  • 打印地图中包含的集合的内容

    我正在编写一个程序 从文件中读取团队名称并将其分组 每组尺寸为 4 我使用的是 map
  • Eclipse 错误:解析 ...\android-22\android-wear\armeabi-v7a\devices.xml 时出错

    最近 我将 android SDK 升级为Android M API 22 MNC 预览版 之后每个项目打开Eclipse都报错 的错误为logcat and of 弹出窗口 says 错误 解析错误 sdk system images a
  • TaskScheduler.UnobservedTaskException 事件处理程序从未被触发

    我正在阅读一本有关 C 任务并行库的书 并有以下示例 但 TaskScheduler UnobservedTaskException 处理程序从未被触发 谁能给我任何线索来解释为什么 TaskScheduler UnobservedTask
  • 如何在 iOS 上启用新的 Objective-C 对象文字?

    当我使用 Xcode 4 4 创建一个新项目并添加以下行时 NSDictionary test key test value NSString value test key NSLog value is value 它编译时没有警告并按预期
  • jQuery 快速问题:停止事件传播?

    我有一组响应 mouseUp 事件的元素 其中的子元素也响应 mouseUp 事件 全部通过 jQuery 当用户鼠标单击发生子级的 mouseUp 事件时 如何才能使子级的父级 mouseUp 事件在 jQuery 中也不会发生 你要ev
  • 如何打印类型向量 > 来屏幕 C++?

    我有一个返回值向量 gt 的方法 但我不知道如何打印该向量的内容 我试图循环浏览内容 但出现编译器错误 这是我尝试过的一个例子 vector
  • SwiftUI 中根据文本高度自动调整视图高度

    我正在尝试在 SwiftUI 中创建一个视图 其中左侧图像的背景应根据右侧文本的高度垂直缩放 我尝试了很多不同的方法 从GeometryReader to layoutPriority 但我还没有设法让它们中的任何一个工作 当前状态 期望的
  • 向服务器发送 http 请求而不期待响应

    我需要向服务器发送 POST http 请求 但它不应该期待响应 我应该使用什么方法呢 我一直在使用 WebRequest request2 WebRequest Create http local ape project org 6969
  • 如何显示事务隔离级别(MySQL)

    我想知道当前Mysql数据库设置的隔离级别是什么 怎么才能查出来呢 我尝试在谷歌上搜索但没有找到 检查会话事务级别 mysql8 SELECT transaction ISOLATION 检查全局事务级别 mysql8 SELECT glo
  • IO 绑定操作的并行执行

    我已从头到尾阅读了 TPL 和任务库文档 但是 我仍然无法非常清楚地理解以下案例 现在我需要实现它 我将简化我的情况 我有一个IEnumerable
  • Java - 为什么将数组声明为接口类型?

    这是马克 韦斯教授在他的书中说的Java数据结构与算法分析 public class BinaryHeap
  • 如何使用pymssql获取sql打印消息

    我正在运行一些查询 从其执行中打印运行时统计信息 这是通过完成的print message 在sql脚本中使用 我希望在通过 pymssql 调用过程 脚本时看到这些消息 conn pymssql connect server user p
  • Django 中大表的内存效率(恒定)和速度优化迭代

    我有一张非常大的桌子 它当前位于 MySQL 数据库中 我用的是Django 我需要迭代each表的元素来预先计算一些特定的数据 也许如果我更好的话我可以这样做 但这不是重点 我希望在不断使用内存的情况下尽可能快地保持迭代 因为它已经明确地
  • 如何使用 PHP 获取午夜之前的小时数

    设想 一条记录已输入数据库 我试图找出以下方程 如何获取自添加记录以来的小时数 如何获取自记录以来到午夜还剩多少小时 加入 鉴于这些时间 日期 时间 2012 08 22 20 11 20 时间戳 1345684280 今晚午夜 2012