Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.06.2021, 14:53
Katerina1993 Katerina1993 вне форума
Прохожий
 
Регистрация: 22.09.2018
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Как перевести, текущее дату, месяц, день и время в миллисекунды?

В php есть специальная функция time(), она показывает текущий год, месяц, день и время в секундах, в javascript, можно получить миллисекунды если использовать getTime. В delphi я уже пробовала getTime показывает просто текущее время. Как перевести в миллисекунды, текущую дату, месяц, день, время. Вот пример.
1. php - time() - в секундах - (1622687697)
2. js - getTime - в миллисекундах - (1622687466968)
3. Delphi - ?
Ответить с цитированием
  #2  
Старый 04.06.2021, 00:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,681
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

В самом 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  
Старый 05.06.2021, 14:19
Katerina1993 Katerina1993 вне форума
Прохожий
 
Регистрация: 22.09.2018
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Запустила два кода JS и delphi. Использовала таймер, в первом случае setInterval, во втором Timer. В результате, что-то непохоже, что delphi считает милисекунды.
Ответить с цитированием
  #4  
Старый 06.06.2021, 03:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,681
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Не знаю, что то ты где то накосячил. Вот живой пример на 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;
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter