|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как перевести, текущее дату, месяц, день и время в миллисекунды?
В php есть специальная функция time(), она показывает текущий год, месяц, день и время в секундах, в javascript, можно получить миллисекунды если использовать getTime. В delphi я уже пробовала getTime показывает просто текущее время. Как перевести в миллисекунды, текущую дату, месяц, день, время. Вот пример.
1. php - time() - в секундах - (1622687697) 2. js - getTime - в миллисекундах - (1622687466968) 3. Delphi - ? |
#2
|
|||
|
|||
В самом Delphi такой функции, если я не ошибаюсь, нет. Но есть вызов соответсвующей функции из API. То, что ты показал в примерах - это Unix Time (т.е. кол-во милисекунд прошедшиз с определенной даты).
Можно получить вот таким образом: Код:
function UNIXTimeInMilliseconds: Int64; var ST: SystemTime; DT: TDateTime; begin Windows.GetSystemTime(ST); DT := SysUtils.EncodeDate(ST.wYear, ST.wMonth, ST.wDay) + SysUtils.EncodeTime(ST.wHour, ST.wMinute, ST.wSecond, ST.wMilliseconds); Result := DateUtils.MilliSecondsBetween(DT, UnixDateDelta); end; |
#3
|
|||
|
|||
Запустила два кода JS и delphi. Использовала таймер, в первом случае setInterval, во втором Timer. В результате, что-то непохоже, что delphi считает милисекунды.
|
#4
|
|||
|
|||
Не знаю, что то ты где то накосячил. Вот живой пример на Delphi 10.2:
Код:
uses DateUtils; function UNIXTimeInMilliseconds: Int64; var ST: SystemTime; DT: TDateTime; begin GetSystemTime(ST); DT := EncodeDate(ST.wYear, ST.wMonth, ST.wDay) + EncodeTime(ST.wHour, ST.wMinute, ST.wSecond, ST.wMilliseconds); Result := MilliSecondsBetween(DT, UnixDateDelta); end; procedure TForm1.Button1Click(Sender: TObject); var tmUnix : Int64; begin tmUnix := UNIXTimeInMilliseconds; Label1.Caption := IntToStr(tmUnix); end; |