【问题标题】:how to find day of the week of future date like 12-25-2049如何找到未来日期的星期几,如 2049 年 12 月 25 日
【发布时间】:2015-11-11 17:36:13
【问题描述】:

我已尝试使用以下代码来查找一周中的哪一天。

<?php
$day = date('l', strtotime( $date));
?>

当我输入日期“12-25-2049”时,显示的是“星期三”,但应该是“星期六”。
但是当我输入日期“11-11-2014”或“2015”时,它会给出正确的星期几。

为什么第一次约会没有按预期工作?

【问题讨论】:

  • 请发布您使用的实际代码。我知道 PHP 试图解释日期。您的示例看起来可以唯一解析。不过,很高兴看到你实际做了什么? PHP DateTime 应该对该值做一些明智的事情。你试过'createFromFormat'吗?
  • @Amit 你给了它错误的 2049 格式
  • 时间戳的有效范围通常是从 1901 年 12 月 13 日星期五 20:45:54 UTC 到 2038 年 1 月 19 日星期二 03:14:07 UTC。 - de1.php.net/strtotime --- 另见:stackoverflow.com/questions/5319710/…

标签: php datetime


【解决方案1】:

PHP时间戳限制为2038,一定是你的问题的原因。

这里有更多信息:Why do timestamps have a limit to 2038?

【讨论】:

【解决方案2】:

提供正确的日期格式

  $date = '25-12-2049';
  echo date('l', strtotime($date)); // satureday

更新

正如@showdev 建议的那样

$date = '12/25/2049'; //if the separator is a slash (/), then the American m/d/y is assumed
echo date('l', strtotime($date)); // satureday

【讨论】:

  • 作为参考,“如果分隔符是斜杠 (/),则假定为美式 m/d/y;而如果分隔符是破折号 (-) 或点 (.),然后假定欧洲 dmy 格式。” PHP: strtotime notes
  • @showdev 他使用的是破折号(-)并且他提供了错误的格式
  • 是的,我同意。我提供了书面解释。
猜你喜欢
  • 1970-01-01
  • 2021-12-16
  • 2020-02-21
  • 1970-01-01
  • 2013-02-15
  • 1970-01-01
  • 2021-12-09
  • 2021-07-23
  • 1970-01-01
相关资源
最近更新 更多