我已經通過openssl_x509_parse()函數解析了openssl證書,並得到了一個數組。獲取openssl證書過期日期
現在我需要獲得該證書的到期時間。在解析數組中,我有包含有效unix時間戳的validTo_time_t
元素。但是,如何確定此時間戳所屬的時區?
所以我不能得到真正的到期時間,因爲那個時間戳,因爲它意味着在不同時區的不同日期。
我已經通過openssl_x509_parse()函數解析了openssl證書,並得到了一個數組。獲取openssl證書過期日期
現在我需要獲得該證書的到期時間。在解析數組中,我有包含有效unix時間戳的validTo_time_t
元素。但是,如何確定此時間戳所屬的時區?
所以我不能得到真正的到期時間,因爲那個時間戳,因爲它意味着在不同時區的不同日期。
php使用它的默認時區格式化此字段。您可以使用http://docs.php.net/date_default_timezone_get功能
得到它,一旦你知道的時區,你可以將其轉換爲UTC或任何你需要
Unix時間戳沒有時區。 它定義爲自1970年1月1日以來在UTC的秒數。 這不是一個定義爲真正的日期,而只是一堆秒。 沒有時區=沒有問題。
這就是爲什麼它是跨越不同服務器和不同地區的完美時間衡量標準。你可以存儲unix時間戳,當你將它轉換爲日期時,它將使用你的本地時區來確定日期,這是完全自動的,這意味着當你轉換givin一個不同的時區時,它將轉換爲正確的日期。總是。
這對於所有時間戳都是如此,而不僅僅是SSL輸出。 關於時間戳的主要信息http://www.unixtimestamp.com/
因此,當'openssl_x509_parse()'分析數據時,它會自動將證書'validTo'轉換爲當前時區?這是否意味着此時間戳將是當前php默認時區的真正到期日期? – Hast
@哈斯這就是我認爲它的確,是的。至少,它在unix系統上是這樣做的(在windows上它可能會被破壞,請參閱https://bugs.php.net/bug.php?id=46747) – JimiDini
明白了,謝謝。 – Hast