繁体   English   中英

如何使用php和javascript向mysql datetime字符串添加/子小时

[英]How to use php and javascript to add/sub hours to a mysql datetime string

我有从mysql查询返回的datetime字符串。 我想动态增加/减少小时数(时区支持)。 这些mysql datetime字符串保存在隐藏的html页面元素中,以进行javascript操作。

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

  1. 如何使用php在mysql datetime字符串中增加小时数?

  2. 您如何使用JavaScript将小时数添加到mysql datetime字符串中?

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

       new Date (new Date().toDateString('yourdate') + ' ' + '00:30');

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

我将30分钟添加到我定义的日期值中,您可以用数据库中的数据替换该日期值,并且添加/减少小时,分钟甚至秒

对于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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM