<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 文章開始之前的無關內容</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"這是一段和正文沒關係的提示文字。"</span></span><span>;
</span><span><span class="hljs-comment">// 分隔線</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<hr>"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<h1>怎麼用 gmmktime 函數計算兩個時間點之間的差值?一步步教你</h1>
<p>在 PHP 中,<code></span><span><span class="hljs-title function_ invoke__">gmmktime</span></span><span>()與mktime()不同的是, gmmktime()不受本地時區影響,而是以UTC 時間為基準,這樣在涉及跨時區的應用時更為精準。
假設我們要計算2023年1月1日00 : 00 : 00和2023年2月1日00 : 00 : 00之間的差值,可以這樣寫:
<?php
</span><span><span class="hljs-variable">$time1</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gmmktime</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2023</span></span><span>);
</span><span><span class="hljs-variable">$time2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gmmktime</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2023</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"第一個時間戳: <span class="hljs-subst">$time1</span></span></span><span><br>";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"第二個時間戳: <span class="hljs-subst">$time2</span></span></span><span><br>";
?>
兩個Unix 時間戳相減,就能得到它們之間的秒數差:
<?php
</span><span><span class="hljs-variable">$diff</span></span><span> = </span><span><span class="hljs-variable">$time2</span></span><span> - </span><span><span class="hljs-variable">$time1</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"兩個時間相差的秒數為: <span class="hljs-subst">$diff</span></span></span><span> 秒";
?>
如果我們更關心天數,可以把秒數換算為天數:
<?php
</span><span><span class="hljs-variable">$days</span></span><span> = </span><span><span class="hljs-variable">$diff</span></span><span> / (</span><span><span class="hljs-number">60</span></span><span> * </span><span><span class="hljs-number">60</span></span><span> * </span><span><span class="hljs-number">24</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"兩個時間相差 <span class="hljs-subst">$days</span></span></span><span> 天";
?>
完整的代碼如下:
<?php
</span><span><span class="hljs-variable">$time1</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gmmktime</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2023</span></span><span>);
</span><span><span class="hljs-variable">$time2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gmmktime</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2023</span></span><span>);
</span><span><span class="hljs-variable">$diff</span></span><span> = </span><span><span class="hljs-variable">$time2</span></span><span> - </span><span><span class="hljs-variable">$time1</span></span><span>;
</span><span><span class="hljs-variable">$days</span></span><span> = </span><span><span class="hljs-variable">$diff</span></span><span> / (</span><span><span class="hljs-number">60</span></span><span> * </span><span><span class="hljs-number">60</span></span><span> * </span><span><span class="hljs-number">24</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"從 2023-01-01 到 2023-02-01 共相差: <br>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$diff</span></span></span><span> 秒<br>";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$days</span></span></span><span> 天";
?>
通過gmmktime() ,我們能夠輕鬆獲取GMT 時間戳,並通過相減來計算兩個時間點之間的差值。換算後,我們就能得到秒、分鐘、小時甚至天數,非常適合做時間差的計算。如果你在項目中遇到類似需求,不妨嘗試用這種方法來實現。