[英]I can't get the timestamp for today
我正在嘗試為我的程序之一創建甘特圖模塊。 問題是我正在使用timestamp
s將時間存儲在數據庫中。 這是問題所在:
<?php
$now=time();
echo date('s:i:H d/m/y',$now); //returns: 22:51:07 15/09/15
echo '<br>';
echo $now; // returns: 1442296282
echo '<br>';
echo $now%86400; // returns: 21082
echo '<br>';
echo $today=$now-($now%86400);
// so I Subtract modulated diffrence so that I can access 0:0:0 for today
echo '<br>';
echo date('s:i:H d/m/y',$today);
//returns: 00:00:02 15/09/15
echo '<br>';
echo mktime(0,0,0,9,15,2015); // (timestamp for today at 0:0:0)returns:1442268000
?>
我知道如何解決這個問題,而且我知道如果沒有這種基本方法,今天如何可以獲取0:0:0的時間戳。 (盡管知道更好的方法會很棒),但是此問題的主要建議是知道此邏輯或算法不起作用的問題是什么。
這兩個小時的偏移量取決於您的時區(可能是+2 UTC)。 time()
根據UTC返回時間,而date()
將其轉換為本地時區(在您的情況下為+2)。
因此,如果您要花費time()
減少一天中的秒數,那么您將到達午夜UTC。 然后使用date()
打印出來顯示您的當地時間-凌晨2點左右。
因此:
如果還要查看UTC時間,則應使用gmdate()
而不是date()
。
如果您希望$today
保留自EPOCH以來的本地時間,則應減去時區差:( $today -= (int)substr(date('O'),0,3)*60*60
)。
您應該選擇的方法取決於數據庫中數據的時區。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.