簡體   English   中英

我無法獲得今天的時間戳

[英]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點左右。

因此:

  1. 如果還要查看UTC時間,則應使用gmdate()而不是date()

  2. 如果您希望$today保留自EPOCH以來的本地時間,則應減去時區差:( $today -= (int)substr(date('O'),0,3)*60*60 )。

您應該選擇的方法取決於數據庫中數據的時區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM