我想约会并计算一周的编号.
到目前为止,我有以下内容.当它应该是42时它返回24.
<?php
$ddate = "2012-10-18";
$duedt = explode("-",$ddate);
$date = mktime(0, 0, 0, $duedt[2], $duedt[1],$duedt[0]);
$week = (int)date('W', $date);
echo "Weeknummer: ".$week;
?>
Run Code Online (Sandbox Code Playgroud)
数字是否颠倒是错误和巧合吗?或者我差不多了吗?
Mad*_*iha 147
今天,使用PHP的DateTime
对象更好:
<?php
$ddate = "2012-10-18";
$date = new DateTime($ddate);
$week = $date->format("W");
echo "Weeknummer: $week";
Run Code Online (Sandbox Code Playgroud)
这是因为在mktime()
,它是这样的:
mktime(hour, minute, second, month, day, year);
Run Code Online (Sandbox Code Playgroud)
因此,您的订单是错误的.
<?php
$ddate = "2012-10-18";
$duedt = explode("-", $ddate);
$date = mktime(0, 0, 0, $duedt[1], $duedt[2], $duedt[0]);
$week = (int)date('W', $date);
echo "Weeknummer: " . $week;
?>
Run Code Online (Sandbox Code Playgroud)
pbo*_*ond 52
$date_string = "2012-10-18";
echo "Weeknummer: " . date("W", strtotime($date_string));
Run Code Online (Sandbox Code Playgroud)
小智 15
使用PHP的日期函数
http://php.net/manual/en/function.date.php
date("W", $yourdate)
Run Code Online (Sandbox Code Playgroud)
正如一个建议:
<?php echo date("W", strtotime("2012-10-18")); ?>
Run Code Online (Sandbox Code Playgroud)
可能比那么多一点简单.
你可以做的其他事情:
<?php echo date("Weeknumber: W", strtotime("2012-10-18 01:00:00")); ?>
<?php echo date("Weeknumber: W", strtotime($MY_DATE)); ?>
Run Code Online (Sandbox Code Playgroud)
小智 7
今天到达日期然后告诉本周的周数
<?php
$date=date("W");
echo $date." Week Number";
?>
Run Code Online (Sandbox Code Playgroud)
当您需要年和周时,变得更加困难。
尝试找出 2017 年 1 月 1 日是哪一周。
(这是2016年的第52周,从2016年12月26日星期一到2017年1月1日星期日)。
经过较长时间的搜索我发现
strftime('%G-%V',strtotime("2017-01-01"))
Run Code Online (Sandbox Code Playgroud)
结果:2016-52
https://www.php.net/manual/de/function.strftime.php
ISO-8601:1988 给定年份的周数,从该年的第一周开始,至少有 4 个工作日,从星期一开始一周中的。(01 至 53)
mysql 中的等效项是 DATE_FORMAT(date, '%x-%v')
https://www.w3schools.com/sql/func_mysql_date_format.asp
周,其中星期一是一周的第一天(01 到 53)。
找不到与 DateTime 对应的解决方案。
至少没有像“+1day,上周一”这样的解决方案。
编辑:由于 strftime 现已弃用,也许您也可以使用 date。不过没验证过。
date('o-W',strtotime("2017-01-01"));
Run Code Online (Sandbox Code Playgroud)