本机保存的cookie文件里的时间格式是windows格式的。windows的时间是从1601年开始的100纳秒数,
Unix 时间从 1970-01-01 00:00:00 开始计算。
Win32 FileTime 时间从 1601-01-01 00:00:00 开始计算下面的问题有人在java板块发过,我用那里的算法,发现php无法计算64bit的整数。
返回不了任何结果。
java板块的帖子
http://topic.csdn.net/u/20090420/11/8016744d-d151-4041-a837-5a14f2592e3f.html
FileTIME
时间低位:1907785472
时间高位:30089218对应 Date为:2010-7-10 15:35:18
请问如何把2010-7-10 15:35:18转换成
FileTIME
时间低位:1907785472
时间高位:30089218以及
如何把
FileTIME
时间低位:1907785472
时间高位:30089218
转换成
Date为:2010-7-10 15:35:18
Unix 时间从 1970-01-01 00:00:00 开始计算。
Win32 FileTime 时间从 1601-01-01 00:00:00 开始计算下面的问题有人在java板块发过,我用那里的算法,发现php无法计算64bit的整数。
返回不了任何结果。
java板块的帖子
http://topic.csdn.net/u/20090420/11/8016744d-d151-4041-a837-5a14f2592e3f.html
FileTIME
时间低位:1907785472
时间高位:30089218对应 Date为:2010-7-10 15:35:18
请问如何把2010-7-10 15:35:18转换成
FileTIME
时间低位:1907785472
时间高位:30089218以及
如何把
FileTIME
时间低位:1907785472
时间高位:30089218
转换成
Date为:2010-7-10 15:35:18
头像真给力,wow很h啊
date_default_timezone_set(PRC);
function turnyear($a,$b){
$count=0;
for($i=$a;$i<$b;$i++)
{
if($i%400==0){
$count++;
continue;
}
if($i%4==0 && $i%100!=0){
$count++;
continue;
}
}
return $count;
}
$ext=(369*365+turnyear(1601,1970))*24*3600/pow(2,32);
$high=(30089218/10000000);
$high=$high-$ext;
$low=(1907785472/10000000);
$time=$high*pow(2,32)+$low;
echo date('Y-m-d H:i:s',$time);
$time1= (30122779 << 32); //高位
echo $time1 ."<br>\n";
$time1+=1210364416;//高低位合并,得到自1601年以来的"100纳秒"数 = 0.1微秒
$time1/=10;//得到微秒
$time1/=1000;//得到毫秒
$time1/=1000;//得到秒
$d=Date("Y-m-d H:i:s",$time1-$interval);//interval是1601-1970年之间的毫秒数
php解析cookie文件
php解析ie cookie文件
php parse ie的cookie文件
php read ie的cookie补几个关键字,方便后来的同学搜到。
1601到1970的秒数会超过32位的,php里没有能够表示这个数的整型变量啊~~
//echo 410*86400*365; //12929760000
//高位要 <<32 ,这个表示的是 100ns单位,如果我们只要求秒的单位,那么就可以在<<32中去掉一些位
//计算1601年到2010年,发现秒的数字长度还没有超出php的范围。
$xc = $ysxc = 10000000;$n=32;
for ($i=32;$i>0 ;$i-- )
{
echo "$xc" ."=$i\n";
$mod+=$xc%2;//2的模只能是0和1
$xc=intval($xc/2);
echo $xc ."=$i=模$mod\n";
}$bit = 30122779;
print "$bit << 8 == " . ($bit << 11) . $prod . "\n";
1) bc库,以bc_为前缀的一系列函数,功能较少,默认自带
2)gmp库,以gmp_为前缀的一系列函数,功能较多,需要安装。
ps:咱在3楼已经写出来了好吗?干嘛非要整合到一个数里再计算?直接操作时间高位呗,减去1601到1970的时间秒数,再加上时间低位不就哦了?
//100ns 到 1秒的倍数
$xc = $ysxc = 10000000;//2的32次方
$two32=2;
$n=32;
for ($i=0;$i<31 ;$i++ )
{
$two32*=2;
}
echo $two32 ."\n";
$sec=$two32/$xc; //2的32次方 处以100ns和1秒的差值
echo $sec ."<br>\n";$high = 30122779;
$low=1210364416;//print "$bit << 11 == " . ($bit << 11) . $prod . "\n"; $h=$high*$sec; //高位纳秒转化为秒
echo $h ."<br>\n";
$lowsec=1210364416/$xc; //低位纳秒转化为秒
$tm=$h+$lowsec; //相加就是最终结果秒echo date('Y-m-d H:i:s',$tm); //不对啊,我晕死了
exit;