Tengo una intranet ejecutándose en un linux box, que se autentica contra Active Directory en un cuadro de Windows, usando LDAP a través de PHP.Convertir Windows Timestamp a la fecha usando PHP en Linux Box
puedo recuperar la entrada de un usuario de AD mediante LDAP y acceder a la última fecha de inicio de sesión desde el php array por ejemplo:
echo $adAccount['lastlogontimestamp'][0]; // returns something like 129802528752492619
Si esto fuera una marca de tiempo Unix me gustaría utilizar el siguiente código PHP para convertir a una fecha de lectura humana:
date("d-m-Y H:i:s", $lastlogontimestamp);
Sin embargo, esto no funciona. ¿Alguien sabe cómo puedo lograr esto o, de hecho, si es posible hacerlo desde una caja de Linux?
Tengo un desplazamiento diferente con PHP: strtotime ("1601-01-01") - strtotime ("1970-01-01") = 11644470000. Esta es una hora (3600 segundos) diferente a la suya, pero como MSDN dice que para usar su valor derivado de Java usaré su respuesta. Gracias por su ayuda y gracias a Baba. – amburnside
También he visto 11644477200 (como Baba usó). Eso es al menos tres valores diferentes. Por supuesto, la diferencia no es enorme y puede no importar en algunos contextos, pero es bueno saber cuál es el valor correcto para restar, independientemente de la zona horaria. Voy a ir con el valor '... 7360 ...' como [visto en MSDN] (http://msdn.microsoft.com/en-us/library/ms724228). – Synetech
@Synetech Sí, todo el asunto de la fecha es un desastre sangriento. Siempre depende del sistema que estés usando. – brimborium