优雅地检查给定日期是否是昨天

Ais*_*ina 11 javascript php c# language-agnostic unix-timestamp

假设你有一个Unix时间戳,那么检查该时间戳是否是昨天某个时间的简单和/或优雅的方法是什么?

我主要在Javascript,PHP或C#中寻找解决方案,但也欢迎伪代码和语言无关的解决方案(如果有的话).

Ome*_*Mor 19

在C#中你可以使用这个:

bool isYesterday = DateTime.Today - time.Date == TimeSpan.FromDays(1);

  • 不:今天和日期属性都只返回日期时间的日期部分,时间部分为零.所以它应该工作正常. (3认同)

Ale*_*nov 9

PHP:

$isYesterday = date('Ymd', $timestamp) == date('Ymd', strtotime('yesterday'));
Run Code Online (Sandbox Code Playgroud)


ono*_*nof 5

您可以在C#中使用它:

bool isYesterday = (dateToCheck.Date.AddDays(1) == DateTime.Now.Date);
Run Code Online (Sandbox Code Playgroud)


Kwe*_*ble 5

在伪代码中,要比较时间戳:

  1. 获取当前的Unix时间戳
  2. 将检索到的时间戳转换为日期
  3. 从该日期减去1天
  4. 将时间戳转换为测试日期
  5. 比较两个日期.如果它们相等,则测试的时间戳是昨天.

如果向用户显示结果,请注意时区.对我而言,现在是2010年7月9日13:39.我的14小时前的时间戳是昨天.但对于不同时区的人来说,现在是15:39,14小时前不是昨天!

另一个问题可能是具有错误时间/日期设置的系统.例如,如果您使用JavaScript并且访问者PC的系统时间错误,则该程序可能会得出错误的结论.如果获得正确答案至关重要,请使用正确的时间从已知来源检索当前时间.