【问题标题】:How to use php and javascript to add/sub hours to a mysql datetime string如何使用 php 和 javascript 向 mysql 日期时间字符串添加/分小时
【发布时间】:2016-06-12 23:28:43
【问题描述】:

我有一个 mysql 查询返回的日期时间字符串。我想动态添加/分小时(时区支持)。这些 mysql 日期时间字符串保存在隐藏的 html 页面元素中以供 javascript 操作。

页面的第一次渲染根据用户选择的“默认”时区处理 mysql 日期时间字符串。如果用户愿意,Javascript 将在以后更改这些值。

  1. 如何使用 php 为 mysql 日期时间字符串添加小时数?

  2. 如何使用 javascript 将小时数添加到 mysql 日期时间字符串?

我已经看到了一些非常奇特的操作来获得这些区域调整值,但必须有一种简单的方法来添加/减少几个小时。

【问题讨论】:

    标签: php mysql date


    【解决方案1】:

    对于 PHP,您可以使用 DateTime 对象,然后使用 add 方法:

    $datestring = "2016-05-01 12:30:00"; // This would come from the SQL database
    $date = new DateTime($datestring);
    $date->add(new DateInterval('PT2H'));
    

    DateTime::add() 的文档可以在这里找到:http://php.net/manual/en/datetime.add.php

    它需要一个 DateInterval 作为参数,DateInterval 格式的文档在这里: http://php.net/manual/en/dateinterval.construct.php

    对于 Javascript,我发现 Moment 库非常有用:http://momentjs.com/

    就像 PHP 对象一样,您可以创建一个新的Moment 实例并调用 add 方法:

    var datestring = "2016-05-01 12:30:00"; //Again this would come from your backend database
    var day = moment(datestring);
    day = day.add(2, "hours");
    

    更新

    如果你不想使用Moment,你可以在javascript中使用Date对象:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

    var date = new Date(datestring);
    date.setHours(date.getHours() + 2); // Adds 2 hours 
    date.setMinutes(date.getMinutes() + 20); // Adds 20 mins
    

    【讨论】:

    • 完美。它吠了一会儿,直到我将您的“h”更改为“H” 很棒的答案。谢谢。现在到 javascript。
    • 我还为Javascript添加了一个更简单的方法
    • Carbon 的强制插件,它将$date->add(new DateInterval('PT2H')); 变成$date->addHours(2) 之类的东西
    • 不错,以前没见过,但看起来很有用
    • 我从 Date 对象开始,但在开始日期格式后就投降了。 100K 不是那么大的文件,但我认为会有一个压缩版本。我找不到一个。有吗?
    【解决方案2】:
           new Date (new Date().toDateString('yourdate') + ' ' + '00:30');
    

    Codepen URL 供参考-http://codepen.io/nagasai/pen/WxwGrE

    我在我定义的日期值上添加 30 分钟,您可以用数据库中的数据替换它,然后添加/分小时、分钟甚至秒

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 2023-01-17
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多