2016-06-12 48 views
0

我有从MySQL查询返回的日期时间字符串。我想动态添加/子小时(时区支持)。这些mysql日期时间字符串保存在隐藏的html页面元素中进行javascript操作。如何使用PHP和JavaScript来添加/子小时到一个MySQL日期时间字符串

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

  1. 你如何使用php添加数小时到mysql datetime字符串?

  2. 如何添加小时数到MySQL日期时间字符串使用JavaScript?

我已经看到了一些相当特殊的操作,以获得这些区域调整值,但必须有只加入/ SUB几个小时的简单方法。

回答

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()文件可采用foun这里D: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"); 

UPDATE

如果你不想使用Moment您可以使用Date对象在javascript: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 
+0

完美。它吠叫了一段时间,直到我把你的'h'改为'H'好棒的答案。谢谢。现在到了JavaScript。 – user116032

+0

很酷,我更新了答案以反映'H' –

+0

我还为'Javascript'添加了一个更简单的方法 –

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

Codepen网址为参比http://codepen.io/nagasai/pen/WxwGrE

我在哪里增加30分钟,而我已经定义了你的CA与数据库中的数据替换,你加/减小时,分钟甚至日期值秒

相关问题