當前位置: 首頁> 最新文章列表> 怎麼用gmmktime 函數計算兩個時間點之間的差值?一步步教你

怎麼用gmmktime 函數計算兩個時間點之間的差值?一步步教你

gitbox 2025-09-18
<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 時間為基準,這樣在涉及跨時區的應用時更為精準。

2 . 獲取兩個時間點的時間戳

假設我們要計算20231100 : 00 : 0020232100 : 00 : 00之間的差值,可以這樣寫:

 &lt;?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>&lt;br&gt;";
</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>&lt;br&gt;";
?&gt;

3 . 計算差值(秒數)

兩個Unix 時間戳相減,就能得到它們之間的秒數差:

 &lt;?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> 秒";
?&gt;

4 . 轉換為天數

如果我們更關心天數,可以把秒數換算為天數:

 &lt;?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> 天";
?&gt;

5 . 綜合示例

完整的代碼如下:

 &lt;?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 共相差: &lt;br&gt;"</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> 秒&lt;br&gt;";
</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> 天";
?&gt;

6 . 總結

通過gmmktime() ,我們能夠輕鬆獲取GMT 時間戳,並通過相減來計算兩個時間點之間的差值。換算後,我們就能得到秒、分鐘、小時甚至天數,非常適合做時間差的計算。如果你在項目中遇到類似需求,不妨嘗試用這種方法來實現。