【问题标题】:How to Substract time from datetime如何从日期时间中减去时间
【发布时间】:2017-07-07 08:44:06
【问题描述】:

我正在使用基于时区的脚本,其中有基于时区的截止日期。例如,对于 IST 时区的人来说,截止日期是 7 月 7 日下午 6 点。根据他们的时区,截止日期应该是迪拜的下午 1:30 到下午 6 点。

我已经计算出两个时区的差异。我被困在从截止时间中扣除计算出的时间。

我已将时区保存为 +5:40 +4:00 -4:00 这种格式,而不是使用 php 默认格式。

【问题讨论】:

  • 你想在 query 还是 php 中获取它?你想在哪里存储值?如果要存储在db中,显示一些相关的表结构和相关数据。

标签: php mysql datetime


【解决方案1】:

这是我用来在日期中加减时间的方法。 首先,我从数据库中获取日期,然后将其转换为DateTime 对象。

$date = new DateTime($date);

我使用addDateInterval 来增加时间。这是一个添加小时数的示例。

$date->add(new DateInterval("PT{$hoursToAdd}H"));

下面是减去实际小时数的示例:

$date->sub(new DateInterval("PT{$hoursToSubstract}H"));

查看此内容以了解如何使用 DateInterval 并添加/减去不同的时间:http://php.net/manual/en/class.dateinterval.php

【讨论】:

    【解决方案2】:

    你能更具体地解释一下你想要做什么吗?

    您想在脚本中的某个 var 上已有数据时减去,或者您需要 SQL 查询?

    如果是这样,也许你可以使用这个答案 ---> How to subtract 3 hours from a datetime in MySQL?

    这篇文章的最后一个答案可能是最适合您需要的答案:

    假设您有一些时区问题并且知道源和目标时区,您可以像这样转换它

    SELECT 
        DATE_FORMAT(CONVERT_TZ(x.date_entered, 'UTC', 'Europe/Berlin'), '%Y-%m-%d') AS date
    FROM 
        x 
    ORDER BY 
        date ASC;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多