2

在我的网站中,我使用日期数据类型将用户访问DateTime信息存储在 sql server 中。为此我 在.UtcNowC#

 visit_date = System.DateTime.UtcNow

现在,如果同一用户访问我的网站,我想获得小时差异,那么我如何减去 2 个 UTC 日期。我使用以下方法来获取小时差异,但它给出了错误的小时差异。

TimeSpan timeDiff = System.DateTime.UtcNow.Subtract((DateTime)_Last_View.visit_date);
4

4 回答 4

6

尝试在生成的时间跨度上使用 TotalHours 获取小时数,例如:

TimeSpan interval = date2.Subtract(date1);
double Hours = interval.TotalHours;
于 2012-06-20T04:55:01.160 回答
2
DateTime dt1 = DateTime.UtcNow;
DateTime dt2 = (DateTime)_Last_View;

TimeSpan ts = dt1.Subtract(dt2);

int seconds = ts.Seconds;
int minutes = ts.Minutes;
double hours = ts.TotalHours;
int days = ts.Days;
int days = ts.TotalDays;
int years = (int) (ts.Days / 365.25); // leap years included

在 C# 中检查此计算日期差异

于 2012-06-20T05:01:11.827 回答
2

尝试使用Ticks

double timeDiffTicks = System.DateTime.UtcNow.Ticks - visit_date.Ticks;
double hours = (((timeDiffTicks / 10000)/1000) / 60)/60;
于 2012-06-20T05:02:24.290 回答
1

感谢 。

有用

TimeSpan timeDiff = System.DateTime.UtcNow.Subtract((DateTime)_Last_View.visit_date);

            if (timeDiff.TotalHours > 24)
            {
            }

我正在使用timeDiff.Hours而不是timeDiff.TotalHours.

于 2012-06-20T05:19:37.067 回答