Может кто подскажет решение попроще) Задача. Есть система, которая выдает данные, частью которых является дата. Необходимо к этой дате прибавить один день и вернуть в систему. Дата хранится в бинарной строке как показано ниже. PHP: <?php $bin_date = pack('C5', 0x09, 0x07, 0x24, 0x03, 0x44); // входные данные день 24 месяц 07 год 09 часы 03 минуты 44 [b](именно так 0х24 - это 24ое число)[/b] $hex = bin2hex($bin_date); // var_dump($hex) string(10) "0907240344" $hex_a = str_split($hex, 2); // var_dump($hex_a) array(5) [0]=>str(2)"09" [1]=>str(2)"07" [2]=>str(2)"24" [3]=>str(2)"03" [4]=>str(2)"44" $dec_a = array_map('intval', $hex_a); // var_dump($dec_a) array(5) [0]=>int(9) [1]=>int(7) [2]=>int(24) [3]=>int(3) [4]=>int(44) ++$dec_a[2]; // бизнес-логика, ули. var_dump($dec_a) array(5) [0]=>int(9) [1]=>int(7) [b][2]=>int(25)[/b] [3]=>int(3) [4]=>int(44) $time = mktime($dec_a[3], $dec_a[4], 0, $dec_a[1], $dec_a[2], $dec_a[0]); // var_dump($time) int(1248453840) $res_s = date('ymdHi', $time); // var_dump($res_s) string(10) "0907250344" $res_a_h = str_split($res_s, 2); // var_dump($res_a_h) array(5) [0]=>str(2)"09" [1]=>str(2)"07" [2]=>str(2)"25" [3]=>str(2)"03" [4]=>str(2)"44" $res_a_d = array_map('hexdec', $res_a_h); // var_dump($res_a_d) array(5) [0]=>int(9) [1]=>int(7) [2]=>int(37) [3]=>int(3) [4]=>int(68) $res_a_b = array_map('chr', $res_a_d); // делаем символы по кодам $res = implode($res_a_b); // объединяем в строку var_dump(bin2hex($res)) string(10) "0907250344" день 25 ?>
Дык, какой идиот их так дал? Просто, основные танцы с бубном из-за идиотического положения что 0d24 == 0x24