Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我如何发现一周与一年之间的周差异_Php - Fatal编程技术网

Php 我如何发现一周与一年之间的周差异

Php 我如何发现一周与一年之间的周差异,php,Php,我有一系列的周和年 $wk_det1 = array(36,2013);//ISO week assuming 52 weeks in a year, Year the said week belongs to $wk_det2 = array(51,2012); 我需要找出$wk_det1和$wk_det2之间的周差异。这可能很简单,但我不太明白。有什么办法吗 PS:这是针对php4的,以防万一,每年有52周,所以2013年是2013*52周,2011年是2011*52周;两者之间的差异(假

我有一系列的周和年

$wk_det1 = array(36,2013);//ISO week assuming 52 weeks in a year, Year the said week belongs to
$wk_det2 = array(51,2012);
我需要找出$wk_det1和$wk_det2之间的周差异。这可能很简单,但我不太明白。有什么办法吗


PS:这是针对php4的,以防万一,每年有52周,所以2013年是2013*52周,2011年是2011*52周;两者之间的差异(假设它们在同一周)为52*(2013-2011)周

差异可以简单地表示为
52*($wk_det2[1]-$wek_det1[1])+$wk_det2[0]-$wk_det1[0]

逻辑如下:

define("WEEKS_PER_YEAR", 52);

$week1_yr = $wk_det1[1];
$week2_yr = $wk_det2[1];
$yr_diff = $week2_yr - $week1_yr;

$week1_wk = $wk_det1[0];
$week2_wk = $wk_det2[0];
$wk_diff = $week2_wk - $week1_wk;

$total_wk_diff = WEEKS_PER_YEAR*$yr_diff+$wk_diff;

每年有52周,所以2013年是2013*52周,2011年是2011*52周;两者之间的差异(假设它们在同一周)为52*(2013-2011)周

差异可以简单地表示为
52*($wk_det2[1]-$wek_det1[1])+$wk_det2[0]-$wk_det1[0]

逻辑如下:

define("WEEKS_PER_YEAR", 52);

$week1_yr = $wk_det1[1];
$week2_yr = $wk_det2[1];
$yr_diff = $week2_yr - $week1_yr;

$week1_wk = $wk_det1[0];
$week2_wk = $wk_det2[0];
$wk_diff = $week2_wk - $week1_wk;

$total_wk_diff = WEEKS_PER_YEAR*$yr_diff+$wk_diff;

无论何时在php中处理日期,它总是

在这种情况下,可以使用以下符号转换周和年:

strotime(“2013W36”)


然后,您可以对生成的时间戳进行简单的整数运算。

无论何时在php中处理日期,都是如此

$timediff = strtotime("2013W36") - strtotime("2012W51");
$weeks = $timediff / (3600 * 24 * 7); // 3600 seconds in hour
$preetyWeeks = number_format($weeks, 2);
在这种情况下,可以使用以下符号转换周和年:

strotime(“2013W36”)

然后,您可以对生成的时间戳执行简单的整数运算。


$timediff = strtotime("2013W36") - strtotime("2012W51");
$weeks = $timediff / (3600 * 24 * 7); // 3600 seconds in hour
$preetyWeeks = number_format($weeks, 2);
输出:在1378094400和1324270800之间有88周,模数为601200
输出:在1378094400和1324270800之间有88周,模数为601200

注:这是基于注释要求
ISO周,假设一年52周
。Satanicpuppy建议的strtotime()更适合于计算超过大约3年的差异,因为“闰日”。注:这是基于注释要求
ISO周,假设一年中有52周。Satanicpuppy建议的strtotime()更适合于计算超过大约3年的差异,因为“闰日”