PHP對時間戳的處理

2021-09-01 11:18:18 字數 2140 閱讀 5135

時間戳是指格林威治時間2023年01月01日00時00分00秒(北京時間2023年01月01日08時00分00秒)起至現在的總毫秒數。現在是乙個10位數,隨著時間推移,以後會是11位,12位。

php獲取當前日期的年,月,日

echo date(「y」);

echo date(「m」);

echo date(「d」);

本月共有多少天

echo date(「t」);

明天此時的時間戳

echo strtotime("+1 day")

昨天此時的時間戳:

echo strtotime("-1 day")

下個星期此時的時間戳:

echo strtotime("+1 week")

上個星期此時的時間戳:

echo strtotime("-1 week")

下星期幾的時間戳:

echo strtotime(「next thursday」)

上星期幾的時間戳:

echo strtotime(「last thursday」)

$time = 1540197053;

//轉換為日期2018-10-22

$timea = date(「y-m-d」, $time);

//轉換為日期時間2018-10-22 16:30:53

$timeb = date(「y-m-d h:i:s」, $time);

//轉換為當前月份的第一天日期2018-10-01

$begindate = date(「y-m-01」, $time);

//轉換為當前月份的最後一天日期2018-10-31

$enddate_one = date(「y-m-d」, strtotime(" $begindate +1 month -1 day"));

//轉換為當前月份後三個月的最後一天日期2018-01-31

$enddate_three = date(「y-m-d」, strtotime(" $begindate +4 month -1 day"));

//一年後今天

$date = date(『y』, $time) + 1 . 『-』 . date(『m-d h:i:s』);

mysql資料庫常用的時間型別有timestamp和datetime,兩者主要區別是占用儲存空間長度不一致、可儲存的時間也有限制,但針對不同版本下,timestamp欄位型別的設定需要慎重,因為不注意的可能會被「坑死」。

字段型別--------儲存長度-------------------時間範圍

timestamp------4位元組-----------------------『1970-01-01 00:00:01』 utc to 『2038-01-19 03:14:07』 utc

datetime--------8位元組(5.7佔5位元組)-------『1000-01-01 00:00:00』 to 『9999-12-31 23:59:59』

date 表示年月日,如yy-mm-dd

datetime 表示年月日和時間資訊,如yy-mm-dd hh:mm:ss

datestamp 和datetime表示的資訊相同,但時間範圍不同

時間範圍

date – > 『1000-01-01』 to 『9999-12-31』.

datetime –> 『1000-01-01 00:00:00』 to 『9999-12-31 23:59:59』.

datestamp – > 『1970-01-01 00:00:01』 utc to 『2038-01-19 03:14:07』 utc

優點:1、無時區干擾(時間戳不含時區,絕對時間,存的是標準時不受伺服器所在時區的影響)

2、儲存空間小乙個數字比乙個字串占用空間小得多

3、檢索效率高(資料量大的時候如果需要以該字段作為查詢條件的時候查詢速度會快一點)

4、計算出需要檢索的時間戳,然後比較。如果存的是字串,根本無法比較。

缺點:查詢結果不直觀,需要二次處理。不過這個幾乎可以忽略,如果是在客戶端用sql查詢的時候,mysql自帶了unix_timestamp 和from_unixtime 的轉換函式;如果是程式處理的話,把時間戳轉換成日期物件並不是什麼特別麻煩的事情。

注意:如果用int來儲存時間戳的話,請注意int值的最大值範圍。

SQL 對時間的處理

獲取當前日期 如 yyyy mm dd select datename year,getdate datename month,getdate datename day,getdate 獲取當前日期 如 yyyy mm dd select datename year,getdate datename...

關於對時間戳timestamp理解

關於對時間戳 timestamp理解 一直對時間戳的概念模糊,並且網上也有很多朋友也都誤認為 是 乙個時間字段,每次增加資料時,填入當前的時間值。導致也誤導了很多朋友。這次看了很多資料,糾正一下這個錯誤,自己也搞清楚 資料庫中自動生成的唯一二進位制數字,與時間和日期無關的,通常用作給錶行加版本戳的機...

關於對時間戳timestamp理解

一直對時間戳的概念模糊,並且網上也有很多朋友也都誤認為 是 乙個時間字段,每次增加資料時,填入當前的時間值。導致也誤導了很多朋友。這次看了很多資料,糾正一下這個錯誤,自己也搞清楚 資料庫中自動生成的唯一二進位制數字,與時間和日期無關的,通常用作給錶行加版本戳的機制。儲存大小為 8 個位元組。每個資料...