2016-08-01 119 views
0

我从我的数组以下的输出:转换PHP数组周数

JSFiddle Array

我有以下代码:

$uniquePids = array_unique(array_map(function ($i) { return $i['0']; }, $arrayOpenPW)); 
    $numberOfArrs = count($arrayOpenPW); 
    $pids = array(); 

    foreach ($arrayOpenPW as $h) { 
     $pids[] = $h['0']; 
    } 

    print_r($uniquePids); 

变量$uniquePids只显示非重复数组中的日期。 JsFiddle上的输出来自$uniquePids阵列。

接下来,我想遍历$uniquePids数组中的每个结果,并将该数组中的每个元素从日期转换为星期数。我如何去实现这一目标?

回答

0

你会想在PHP中使用“strototime”和“date”函数。假设$ H [0]代表一个完整的日期字符串(如2016年4月4日),然后...

foreach ($arrayOpenPW as $h) { 
    $pids[] = date("W", strotime($h['0'])); 
} 

这将在$ H [0]将文本转换成数字时间戳,然后用“日期”解析以获取所需的参数。在这种情况下,“W”代表数字,表示一年中的哪一周。 http://php.net/manual/en/function.date.php将向您显示可用于格式化日期时间的所有参数。

+0

谢谢您的回答,但输出似乎没有工作,看到输出: https://jsfiddle.net/dekus90e/ 如果格式到一周后看数组数[716]的给出的结果是'49'。但是,在原始未格式化数组中,查看元素[716]的日期是2016年5月12日。 12/05/2016的一周是第19周,所以这似乎没有奏效 – Karma

+0

在解释日期格式时,格式中使用“/”表示它是MM/DD/YYYY格式,基于此, 12/05/2016将产生49周的正确答案。但是,这听起来像是您打算使用DD/MM/YYYY格式,您需要使用“ - ”,例如12-05-2016。您可以执行str_replace(“/”,“ - ”,$ h ['0'])以便以该格式进行解释。 – Zerkeras