Преобразование метки времени из двоичного в шестнадцатеричное - PullRequest
1 голос
/ 27 февраля 2012

Я пытаюсь создать отчет из собственной базы данных ERP. Я установил соединение ODBC и использую PHP для извлечения данных из базы данных.

Если я использую Microsoft SQL Server Management Studio, я вижу, что строка имеет поле TimeStamp (тип строки) со значением 0x00000000093E7FCA, что, по-видимому, соответствует 2011-02-04. (Все поля в этой таблице имеют строковый тип. Не знаю почему. Кажется ленивым.)

Если я сделаю var_dump возвращенного объекта ODBC, я получу:

public 'TimeStamp' => string '����  >Â' (length=8)

Как преобразовать это строковое значение в его шестнадцатеричный эквивалент (в данном случае 0x00000000093E7FCA) с использованием PHP?

Я пробовал:

$row->TimeStamp + 0; // '0' ...nope.
(binary)$row->TimeStamp; // '����   >Â' ...close!
(int)((binary)$row->TimeStamp); // '0' ...doh!

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Вы можете попробовать это: bin2hex . Реализация php для преобразования двоичных данных в шестнадцатеричные.

1 голос
/ 27 февраля 2012

Я бы попробовал bin2hex($row->TimeStamp)

Документы: http://us3.php.net/manual/en/function.bin2hex.php

...