簡體   English   中英

PHP時間戳之間的區別? 還是mysql時間戳?

[英]Difference between php timestamp? Or mysql timestamp?

我使用php在mysql表上記錄了兩個時間戳。 如何使用php或mysql計算這些時間戳之間的小時數差異?

在php中,您可以只使用常規數學,然后使用date()函數創建以小時表示的日期時間

如果您實際使用小時數(3600秒),則只需減去時間戳並除以3600:

$hours = ($timestamp2 - $timestamp1)/3600;
$hours = floor($hours); // to round down.

或類似的SQL。

如果要“邏輯小時”:

$tz = new DateTimezone("Europe/Lisbon"); //replace with actual timezone
$d2 = new DateTime("@$timestamp2");
$d2->setTimezone($tz); 
$d1 = new DateTime("@$timestamp1");
$d1->setTimezone($tz);
$hours = $d2->diff($d1)->h;

如果兩次之間的DST發生變化,這將有所不同。 例:

<?php
$ltz = new DateTimezone("Europe/Lisbon");
date_default_timezone_set("Europe/Lisbon");
$ts2 = strtotime("31-Oct-2010 02:30:00");
$ts1 = strtotime("31-Oct-2010 00:30:00");

$d2 = new DateTime("@$ts2");
$d2->setTimezone($ltz);
$d1 = new DateTime("@$ts1");
$d1->setTimezone($ltz);

var_dump(floor($ts2-$ts1)/3600);
var_dump($d2->diff($d1)->h);

給出:

float(3)
int(2)

暫無
暫無

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

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