簡體   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