获取本月的第一天,输出错误的本月第一天
Getting first day of the month, is outputting the wrong first day of the month
我想以 'day of the week' 格式显示月份的第一天。
例如,下面的代码应该 select 八月,并说 01 是星期四,但由于某种原因,下面的代码输出错误的星期五,在某些月份,例如五月它正确地说星期三。
$monthNumber = 3;
$base = strtotime(date('Y-m',time()) . '-01 00:00:01');
$dateTest = date("Ym" . 1, strtotime($monthNumber . " month", $base));
$unixTimestamp = strtotime($dateTest, $base);
echo date("l", $unixTimestamp);
有没有人有任何想法让它显示正确的日期?
$base 修复了未显示正确月份的错误。
你必须首先使用 date():
$base = date('Y-m',time()) . '-01 00:00:00';
并且不必设置第一秒:)
为什么不使用日期时间?
echo (new \DateTime('first day of august 2019'))->format('l');
详细了解 Relative formats。
要让星期几落在任何一个月的第一天,您可以使用前缀 first day of
,例如
echo (new \DateTime('first day of August'))->format('l');
这将在 2019 年 8 月的星期四正确显示。
如果您想使用几个月的数字动态地完成它,您可以像您尝试做的那样创建一个虚拟日期。
$timeString = sprintf('01.%02d.%04d', 8, 2019); // replace the numbers with your variables
echo (new \DateTime($timeString))->format('l');
我想以 'day of the week' 格式显示月份的第一天。 例如,下面的代码应该 select 八月,并说 01 是星期四,但由于某种原因,下面的代码输出错误的星期五,在某些月份,例如五月它正确地说星期三。
$monthNumber = 3;
$base = strtotime(date('Y-m',time()) . '-01 00:00:01');
$dateTest = date("Ym" . 1, strtotime($monthNumber . " month", $base));
$unixTimestamp = strtotime($dateTest, $base);
echo date("l", $unixTimestamp);
有没有人有任何想法让它显示正确的日期?
$base 修复了未显示正确月份的错误。
你必须首先使用 date():
$base = date('Y-m',time()) . '-01 00:00:00';
并且不必设置第一秒:)
为什么不使用日期时间?
echo (new \DateTime('first day of august 2019'))->format('l');
详细了解 Relative formats。
要让星期几落在任何一个月的第一天,您可以使用前缀 first day of
,例如
echo (new \DateTime('first day of August'))->format('l');
这将在 2019 年 8 月的星期四正确显示。
如果您想使用几个月的数字动态地完成它,您可以像您尝试做的那样创建一个虚拟日期。
$timeString = sprintf('01.%02d.%04d', 8, 2019); // replace the numbers with your variables
echo (new \DateTime($timeString))->format('l');