1

I have an array with date & time like below:

$array = array('2021-05-04T10:00', '2021-05-05T10:00', '2021-05-06T10:00');

From each value, the T10:00 should be cut off, so that my new array looks like this:

$new_array = array('2021-05-04', '2021-05-05', '2021-05-06');

How can i do that?

john
  • 1,263
  • 5
  • 18

3 Answers3

2
$array = array('2021-05-04T10:00', '2021-05-05T10:00', '2021-05-06T10:00');
$new_array = [];
foreach($array as $a) {
  $a = explode('T', $a)[0];
  array_push($new_array, $a);
}
M. Eriksson
  • 13,450
  • 4
  • 29
  • 40
pullidea-dev
  • 1,768
  • 1
  • 7
  • 23
2

Iterate through the array by array_map with callback function take only first 10 chars, Which represent time.

$array = array('2021-05-04T10:00', '2021-05-05T10:00', '2021-05-06T10:00');
$new_array = array_map(fn($time)=>substr($time, 0, 10), $array);
print_r($new_array);

Prints:

/*
Array
(
    [0] => 2021-05-04
    [1] => 2021-05-05
    [2] => 2021-05-06
)
*/
XMehdi01
  • 5,538
  • 2
  • 10
  • 34
2

the T10:00 should be cut off

If you have a constant time T10:00 and want to get rid of it just replace it with empty!

$array = array('2021-05-04T10:00', '2021-05-05T10:00', '2021-05-06T10:00');
$new_array = array_map(fn($time)=>str_replace('T10:00', '', $time), $array);

print_r($new_array);
//Array ( [0] => 2021-05-04 [1] => 2021-05-05 [2] => 2021-05-06 ) 
XMehdi01
  • 5,538
  • 2
  • 10
  • 34