Ho una intranet in esecuzione su una casella Linux, che autentica contro Active Directory su una casella di Windows, utilizzando LDAP tramite PHP.Convertire la data/ora di Windows con PHP su una Linux Box
posso recuperare la voce di un utente da AD utilizzando LDAP e accedere l'ultima data di accesso dal esempio array PHP:
echo $adAccount['lastlogontimestamp'][0]; // returns something like 129802528752492619
Se questo fosse un timestamp Unix Vorrei utilizzare il seguente codice PHP da convertire in un data leggibile dall'uomo:
date("d-m-Y H:i:s", $lastlogontimestamp);
Tuttavia, questo non funziona. Qualcuno sa come posso ottenere questo o, in effetti, se è possibile farlo da una scatola Linux?
Ho ottenuto un offset diverso con PHP: strtotime ("1601-01-01") - strtotime ("1970-01-01") = 11644470000. Questa è un'ora (3600 secondi) diversa dalla tua, ma come MSDN dice che per usare il valore derivato Java userò la tua risposta. Grazie per l'assistenza e grazie a Baba. – amburnside
Ho anche visto 11644477200 (come usato da Baba). Questo è almeno tre diversi valori. Certo, la differenza non è enorme e potrebbe non essere rilevante in alcuni contesti, ma è bene sapere qual è il valore corretto da sottrarre, indipendentemente dal fuso orario. Vado con il valore "... 7360 ..." come [visto nel MSDN] (http://msdn.microsoft.com/en-us/library/ms724228). – Synetech
@Synetech Sì, l'intera faccenda della data è un casino sanguinoso. Dipende sempre da quale sistema stai usando. – brimborium