【问题标题】:How to change a random date to be the monday of the same week如何将随机日期更改为同一周的星期一
【发布时间】:2018-03-31 20:23:45
【问题描述】:

各位朋友,

如何更改日期变量以表示同一周的星期一?

$randomdate = '2018-03-31';
$monday = ??????   // The result should be '2018-03-26'

我认为没有办法让 html5 日期选择器允许用户只选择星期一或阻止用户手动输入随机日期,所以我打算通过 PHP 来做到这一点。

感谢您的帮助。

【问题讨论】:

  • new DateTime("2018-03-31 last monday"): 3v4l.org/D3G7C。如果日期已经是星期一,您可能需要做一些更聪明的事情,这取决于您的要求。
  • echo date('Y-m-d', strtotime("2018-03-31 last monday"));
  • 所以基本上我必须先检查日期是否还不是星期一,对吗?我可以用任何简单的线来验证这一点吗?谢谢你们。
  • 或试试这个:date('Y-m-d', strtotime($randomdate) - 24 * 60 * 60 * (date('N', strtotime($randomdate)) - 1))

标签: php html datepicker


【解决方案1】:

怎么样:

$randomdate = '2018-03-31';
$randomdateTimestamp = strtotime($randomdate);
$mondayTimestamp = $randomdateTimestamp - 24 * 60 * 60 * (date('N', $randomdateTimestamp) - 1);
$monday = date('Y-m-d', $mondayTimestamp);
var_dump($monday);

【讨论】:

  • 谢谢 lulco,我想你的方法解决了整个问题,即使我给了一个星期一作为随机日期。竖起大拇指!
  • 不客气,我在评论中写了较短的版本:date('Y-m-d', strtotime($randomdate) - 24 * 60 * 60 * (date('N', strtotime($randomdate)) - 1))
  • 我刚刚使用您的代码创建了一个名为 get_monday($date) 的函数,所以现在它就像一个魅力一样工作。
  • 使用 4+ 个空格来缩进或突出显示代码,然后使用 usr CTRL-K,不要使用刻度。我不得不编辑。
  • 对不起,我的错,我使用来自 github / gitlab 的语法并且它可以工作(代码以某种方式突出显示)。我会尽量记住使用空格
猜你喜欢
  • 2023-03-28
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-04
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
相关资源
最近更新 更多