首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript Date to Delphi TDateTime

JavaScript Date to Delphi TDateTime
EN

Stack Overflow用户
提问于 2019-07-24 13:46:35
回答 2查看 1.1K关注 0票数 1

我需要通过AJAX为delphi服务器发送日期,该服务器接受浮点数格式的日期并设置TDateTime属性。

例如:

代码语言:javascript
复制
var
   date: TDateTime;
begin
   date := StrToFloat(Request.QueryFields.Values['date']);
end;

德尔菲TDateTime从1989年12月30日开始,我在以下方面进行了测试:

代码语言:javascript
复制
var
   date: TDateTime;
begin
   date := StrToFloat('0');
   ShowMessage( DateTimeToStr(date) ); // show: 30/12/1899
end;

从unix时代开始的JavaScript日期,我已经测试了以下内容:

代码语言:javascript
复制
console.log(new Date(0)); // Thu Jan 01 1970 01:00:00 GMT+0100

简单的转换似乎减去了差异,但没有效果,例如:

代码语言:javascript
复制
// javascipt
var delphiTime = (new Date("07-24-2019") - new Date("12-30-1899")) / 1000;
console.log(delphiTime ); // 3773084400


// delphi
ShowMessage( DateTimeToStr(3773084400) ); // show 00/00/00

奇怪的是,在德尔菲上,Now是43670.654378:

代码语言:javascript
复制
ShowMessage( FloatToStr(Now) ); // 43670.654378

在德尔菲0是1899年43670是2019年..。

如何在Delphi中使用日期格式,以及如何用数学将unix日期转换为delphi日期?

备注:我不能修改服务器,我需要用javascript解决客户端的问题

更新:

在Delphi中,浮点数=1为31.12.1899,2= 01.01.1900,依此类推。每个单位似乎都有一天。

代码语言:javascript
复制
function jsDateToDelphiDate(date){
  const seconds = (new Date(date).getTime() - new Date("12-30-1899").getTime()) / 1000;
  const days = seconds / 60 / 60 / 24;
  return days;
}

console.log(jsDateToDelphiDate(new Date("07-24-2019 16:00:00"))); // 43670.625

德尔菲上的43670.62523/07/2019 15:00

为什么我浪费了1小时?

EN

回答 2

Stack Overflow用户

发布于 2019-07-24 13:53:04

在JS中,valueOf日期以毫秒为单位。如果您想将其转换为天,只需将其除以24*60*60*1000。

票数 0
EN

Stack Overflow用户

发布于 2022-02-11 10:19:12

要将new Date().valueOf()的返回值转换为Delphi TDateTime,可以使用以下函数:

代码语言:javascript
复制
function jsDateToDelphiDate(millis: int64): TDateTime;
begin
  var UnixSeconds: Integer := Round(millis / MSecsPerSec);
  Result := UnixToDateTime(UnixSeconds, False);
end;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57184472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档