![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день форумчане, подскажите как исправить функцию, чтобы timestamp (количество миллисекунд с 1970 года) был не 10-значный, а 13-значный.
Вот функция Код:
function DateTimeToStamp(DelphiTime : TDateTime): LongWord; begin Result := Round((DelphiTime - 25569) * 86400); end; Вот ее вызов Код:
timestamp := inttostr(DateTimeToStamp(Now)); Получаем 1452314092. Нужно получить 1452334536851 (ну такое число встречается везде на сайтах где используется функция php - getTime()). p.s. нужно результат php функцию getTime() подогнать к дельфи. Как ? Последний раз редактировалось cyber, 09.01.2016 в 14:39. |
#2
|
||||
|
||||
![]() а секунды и миллисекунды не перепутаны?
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() прошу прощения, миллисекунды требуются
![]() |
#4
|
||||
|
||||
![]() так умножай на 86400000
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
cyber (09.01.2016)
|
#5
|
|||
|
|||
![]() Цитата:
![]() |
#6
|
|||
|
|||
![]() сегодня попробовал, не получается то, что нужно. Если умножать на 86400000 то получаем 910901120 вместо 1452334536851
![]() |
#7
|
||||
|
||||
![]() Если при умножении на 86400 получал 1452314092, то при умножении еще на тысячу (чем и является умножение на 86400 000) по определению получишь то же самое, но с тремя цифрами на конце. Невозможно получить такой операцией число меньшей длины. Кроме случая с переполнением, конечно, потому что это число (910901120) явно меньше максимума, которое влезает в integer/dword, а 1452334536851 - больше.
Почему так? А потому что: Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
cyber (13.01.2016)
|
#8
|
|||
|
|||
![]() Цитата:
Последний раз редактировалось cyber, 13.01.2016 в 02:17. |