获取PHPdate的周数(在一年中)
我想找一个date,并计算出周数是多less。
到目前为止,我到目前为止,它应该是42时返回。
<?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; ?>
这个数字是否被颠倒是错误的和巧合的? 还是我差不多?
今天,使用PHP的DateTime
对象更好:
<?php $ddate = "2012-10-18"; $date = new DateTime($ddate); $week = $date->format("W"); echo "Weeknummer: $week";
这是因为在mktime()
,它是这样的:
mktime(hour, minute, second, month, day, year);
因此,你的订单是错误的。
<?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; ?>
$date_string = "2012-10-18"; echo "Weeknummer: " . date("W", strtotime($date_string));
使用PHP的datefunction… http://php.net/manual/en/function.date.php
date(“W”,$ yourdate)
就像一个build议:
<?php echo date("W", strtotime("2012-10-18")); ?>
可能会比这一切都简单一点。
其他事情你可以做:
<?php echo date("Weeknumber: W", strtotime("2012-10-18 01:00:00")); ?> <?php echo date("Weeknumber: W", strtotime($MY_DATE)); ?>
这得到今天的date,然后说出一周的周数
<?php $date=date("W"); echo $date." Week Number"; ?>
你的代码将起作用,但你需要翻转第四和第五个参数。
我会这样做
$date_string = "2012-10-18"; $date_int = strtotime($date_string); $date_date = date($date_int); $week_number = date('W', $date_date); echo "Weeknumber: {$week_number}.";
另外,你的variables名称会在你看了一个星期的代码之后感到困惑,你应该考虑阅读http://net.tutsplus.com/tutorials/php/why-youre-a-bad-php-programmer/
<?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; ?>
你有mktime params的错误 – 需要是月/日/年,而不是日/月/年
规则是一年中的第一周是包含当年第一个星期四的那一周。
我个人使用Zend_Date进行这种计算,并得到今天的一周是简单的。 如果使用date,他们还有许多其他有用的function。
$now = Zend_Date::now(); $week = $now->get(Zend_Date::WEEK); // 10
以PHP计算当周的N周前一周的一周
从本年的当前周开始获取周(N)
试试这个解决scheme
date( 'W', strtotime( "2017-01-01 + 1 day" ) );
function last_monday($date) { if (!is_numeric($date)) $date = strtotime($date); if (date('w', $date) == 1) return $date; else return date('Ym-d',strtotime('last monday',$date)); } $date = '2021-01-04'; //Enter custom date $year = date('Y',strtotime($date)); $date1 = new DateTime($date); $ldate = last_monday($year."-01-01"); $date2 = new DateTime($ldate); $diff = $date2->diff($date1)->format("%a"); $diff = $diff/7; $week = intval($diff) + 1; echo $week; //Returns 2.