2013-07-17 87 views
4

我已經通過openssl_x509_parse()函數解析了openssl證書,並得到了一個數組。獲取openssl證書過期日期

現在我需要獲得該證書的到期時間。在解析數組中,我有包含有效unix時間戳的validTo_time_t元素。但是,如何確定此時間戳所屬的時區?

所以我不能得到真正的到期時間,因爲那個時間戳,因爲它意味着在不同時區的不同日期。

回答

1

php使用它的默認時區格式化此字段。您可以使用http://docs.php.net/date_default_timezone_get功能

得到它,一旦你知道的時區,你可以將其轉換爲UTC或任何你需要

+0

因此,當'openssl_x509_parse()'分析數據時,它會自動將證書'validTo'轉換爲當前時區?這是否意味着此時間戳將是當前php默認時區的真正到期日期? – Hast

+0

@哈斯這就是我認爲它的確,是的。至少,它在unix系統上是這樣做的(在windows上它可能會被破壞,請參閱https://bugs.php.net/bug.php?id=46747) – JimiDini

+0

明白了,謝謝。 – Hast

2

Unix時間戳沒有時區。 它定義爲自1970年1月1日以來在UTC的秒數。 這不是一個定義爲真正的日期,而只是一堆秒。 沒有時區=沒有問題。

這就是爲什麼它是跨越不同服務器和不同地區的完美時間衡量標準。你可以存儲unix時間戳,當你將它轉換爲日期時,它將使用你的本地時區來確定日期,這是完全自動的,這意味着當你轉換givin一個不同的時區時,它將轉換爲正確的日期。總是。

這對於所有時間戳都是如此,而不僅僅是SSL輸出。 關於時間戳的主要信息http://www.unixtimestamp.com/