2016-06-12 57 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與數據庫中的數據替換,你加/減小時,分鐘甚至日期值秒

相關問題