[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Decode format
user101109
Помогите представить дату из win int64 в Unix формат RFC 2822 plz.
К примеру из этих параметров надо получить нужное значение - Mon, 14 Dec 2009 11:05:14 UTC.

$date_int = '1335516192,30047405'; //(Decode format : Cookie Date)
$date_hex = '01ca7cad4f9a5c20'; //(Decode format : 64 bit Hex Value - Big Endian)


Эта штука умеет такое делать
http://www.digital-detective.co.uk/freetools/decode.asp
Может кто знает алгоритм или иной способ???



Спустя 2 дня, 19 часов, 1 минута, 35 секунд (15.01.2010 - 12:57) user101109 написал(а):
Мож кому поможет smile.gif
<?php
// convert hex string to BC-int
function hex_to_bcint($str) {
$hex = array(
'0'=>'0', '1'=>'1', '2'=>'2', '3'=>'3', '4'=>'4',
'5'=>'5', '6'=>'6', '7'=>'7', '8'=>'8', '9'=>'9',
'a'=>'10', 'b'=>'11', 'c'=>'12', 'd'=>'13', 'e'=>'14', 'f'=>'15',
'A'=>'10', 'B'=>'11', 'C'=>'12', 'D'=>'13', 'E'=>'14', 'F'=>'15'
);

$bci = '0';
$len = strlen($str);
for ($i=0; $i<$len; ++$i) {
$bci = bcmul($bci, '16');

$ch = $str[$i];
if (isset($hex[$ch]))
$bci = bcadd($bci, $hex[$ch]);
}

return $bci;
}


function win64_to_unix($bci) {
// Unix epoch as a Windows file date-time value
$magicnum = '116444735995904000';

$t = bcsub($bci, $magicnum); // Cast to Unix epoch
$t = bcdiv($t, '10000000', 0); // Convert from ticks to seconds

return $t;
}

// get input
$dtval = isset($_GET["dt"]) ? strval($_GET["dt"]) : "0";

// convert to int
$win64_datetime = hex_to_bcint($dtval);

// convert to Unix timestamp value
$unix_datetime = win64_to_unix($win64_datetime);

?><html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Windows datetime test code</title>
</
head>

<
form method="get">
<
label>Datetime value: <input name="dt" type="text" value="<?php echo $dtval; ?>"/></label>
<
input type="submit" />
</
form>
<
hr />
Result:

Int: <?php echo $win64_datetime; ?><br />
Unix timestamp: <?php echo $unix_datetime; ?><br />
Date: <?php echo date(DATE_RFC2822, $unix_datetime); ?><br />
<
body>
</
body>
</
html>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.