PHP-时间戳问题[LDAP]

PHP-时间戳问题[LDAP],php,datetime,ldap,Php,Datetime,Ldap,我在网上没完没了地搜索,似乎还是找不到我的问题的正确答案 在PHP中,我提取用户的whenCreated ldap属性,其格式如下: echo $user["whenCreated"] //20150915110643.0Z 此用户创建于2015年9月15日11:06:43 然后,我想在此基础上添加1天,并将其插入accountExpires属性 我遇到的问题是转换时间戳,执行1天的加法,然后再转换回来 从这个站点:似乎有一个计算器(不幸的是,它没有显示所使用的函数) 但是,它的格式是YMD

我在网上没完没了地搜索,似乎还是找不到我的问题的正确答案

在PHP中,我提取用户的whenCreated ldap属性,其格式如下:

echo $user["whenCreated"]
//20150915110643.0Z
此用户创建于2015年9月15日11:06:43

然后,我想在此基础上添加1天,并将其插入accountExpires属性

我遇到的问题是转换时间戳,执行1天的加法,然后再转换回来

从这个站点:似乎有一个计算器(不幸的是,它没有显示所使用的函数)

但是,它的格式是
YMD LDAP TIMESTAMP
so
yyymmddhhmmst。T

我知道,使用UNIX时间戳可以很容易地添加1天。 因此,当我使用以下命令将StackOverflow上的应答转换为UNIX时间戳时:

$winSecs       = (int)($user["whenCreated"] / 10000000); // divide by 10 000 000 to get seconds
$unixTimestamp = ($winSecs - 11644473600); // 1.1.1600 -> 1.1.1970 difference in seconds
echo date(DateTime::RFC822, $unixTimestamp);
我得到以下输出:

5月16日星期六05:09:39+0200

因此,如果您能为这些时间戳提供正确格式等方面的帮助,我们将不胜感激


谢谢

这应该可以满足您的需要。在$ldap中向提供的日期添加1天

$ldap = '20150915110643.0Z';
$convert = DateTime::createFromFormat( 'Ymdhis.0Z', $ldap );
$convert->add( new DateInterval( 'P1D' ) );
$ldap = $convert->format( 'Ymdhis' ).'.0Z';

太棒了,谢谢威廉-这正是我想要的。是祖鲁语的格式化部分让我感到困惑。