1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| /*------------------------------------------------------------------------
* Entree(s) :
* - $date dd-mm-yyyy
* Sortie(s) :
* - date en 100aines de nanosecondes écoulées depuis le 01/01/1601
* variable(s) globale(s) :
* -
*------------------------------------------------------------------------
*
* Convertit une date clasique dd-mm-yyyy
* en date LDAP
* (100aines de nanosecondes écoulées depuis le 01/01/1601)
*
*/
function convert_time_ddmmyyyy2ldap($value)
{
// Unix time stamp
$unixTsLastLogon = strtotime ($value) ;
// secondes depuis le 1 jan 1601
$ADToUnixConvertor=((1970-1601) * 365.242190) * 86400;
$secsAfterADEpoch = $unixTsLastLogon + $ADToUnixConvertor ;
$dateLargeInt = $secsAfterADEpoch * (10000000) ;
$dateStr = (string)$dateLargeInt ;
$dateStr = preg_replace ("#\.#", "", $dateStr) ;
preg_match ("#E\+(\d+)#i", $dateStr, $tab_res) ;
$exposant = $tab_res[1] ;
$dateStr = preg_replace ("#E\+\d+#i", "", $dateStr) ;
$len = strlen($dateStr) ;
for ($i = $len ; $i < $exposant+1 ; $i++)
{
$dateStr = $dateStr."0" ;
}
return $dateStr;
} |
Partager