客户端和服务器之间的时区差异

时间:2017-05-10 23:20:33

标签: c# reactjs datetime .net-core

我遇到客户端与服务器时差的常见问题。我有一个日期范围过滤器,用户可在其中选择报告中数据的开始和结束日期。 Web应用程序使用React完成。

当用户发送请求时,我使用moment.js将开始日期设置为所选日期的开始,将结束日期设置为所选结束日期的结束。如果我在本地运行并检查值,我将在上午12:00:00作为开始时间和下午12:59:59作为结束时间。我把它发送到后端,一个.net核心应用程序。在本地工作正常,但一旦进入分期,所有具有确切开始日期的记录将被排除。但是,如果我在服务器中截断开始日期,我会检索这些记录。

    public async Task<IActionResult> ShowByDates(DateTime startDate, DateTime endDate)
    {
        startDate = startDate.Date; //<-- this 'fixes' my problem
        var shabbatonInfo = _context.ProgramSessions
            .Where(ps => ps.StartDate >= startDate && ps.StartDate <= endDate);
        return await GetData(shabbatonInfo);
    }

问题是,由于时间从凌晨12:00:00转换到比如说凌晨04:00:00,结束日期可能也会被移动到第二天(我不是在数据库中有记录来测试这个,也不能用它来破坏它。我环顾四周,大多数答案都说将数据存储在GMT中,但这似乎不是我的问题,或者如果是,我肯定无法更改数据库,因为它是遗留数据库。

0 个答案:

没有答案