PHP: timestamps between dates
I have an array with timestamps. If this timestamps are between two given dates I need to collect them into another array. Let me use an example:
Lets say $array1[] has:
Array ( [0] => 1299147500 [1] => 1299147453 [2] => 1299146476 [3] => 1299143220 [4] => 1297934349 [5] => 1297845742 [6] => 1297695551 [7] => 1296134251 [8] => 1295948452 [9] => 1295554308 [10] => 1295369389 [11] => 1295345559 [开发者_开发技巧12] => 1295261432 [13] => 1295014784 [14] => 1294929846 [15] => 1294832875 )
I need to create $array2[] with those values from $array1[] that are between Thursday February 17, 2011 and Thursday March 3, 2011 How can I do this?
Thanks a ton
$low = strtotime('Thursday February 17, 2011');
$high = strtotime('Thursday March 3, 2011');
$array2 = array();
foreach($array1 as $timestamp) {
if ($low <= $timestamp && $timestamp <= $high) {
$array2[] = $timestamp;
}
}
an alternative using array_filter
which will maintain the keys.
$low = strtotime('Thursday February 17, 2011');
$high = strtotime('Thursday March 3, 2011');
$array2 = array_filter($array1, function($timestamp) use ($low, $high) {
return $low <= $timestamp && $timestamp <= $high;
});
- Convert first and last date to timestamps using strtotime()
- For each item in the array, if it is between min and max, copy it to the second array. Sort the array of timestamps
http://codepad.org/mDvRJ534
<?php
$array1 = array(1299147500,1299147453,1299146476,1299143220,1297934349,1297845742,1297695551,1296134251,1295948452,1295554308,1295369389,1295345559,1295261432,1295014784,1294929846,1294832875);
$array2 = array();
$date1 = strtotime('Thursday February 17, 2011');
$date2 = strtotime('Thursday March 3, 2011');
foreach($array1 as $timestamp){
if($timestamp <= $date2 && $timestamp >= $date1)
$array2[] = $timestamp;
}
echo 'date1 = '.$date1."\n";
echo 'date2 = '.$date2."\n";
print_r($array2);
Someone answered this in another post over here mate How to check if a date is in a given range?
精彩评论