2012-05-30 3 views
0

В моем PHP кода у меня есть array1, который имеет 2 колонки, то есть:PHP: приращение времени

ID | startDate 
1 | 2012-02-03 11:50 
2 | 2012-02-03 11:50 
3 | 2012-02-03 11:50 
4 | 2012-02-03 11:50 

Мне нужно преобразовать array1 в следующие array2:

ID | startDate 
1 | 2012-02-03 11:50:00 
2 | 2012-02-03 11:50:30 
3 | 2012-02-03 11:51:00 
4 | 2012-02-03 11:51:30 

Итак, я должен просто увеличивайте время на 30 секунд, начиная со второй записи. Этот прирост должен быть кумулятивно распространен, как вы можете видеть в примере. Я не очень хорошо владею PHP. Кто-нибудь знает временные функции PHP, которые могли бы выполнять эту работу в нескольких строках кода?

+0

Вы добавлением 50 сек, 0 сек, 50 сек, 0 сек и т.д.? Они не на 50 секунд больше ... У третьего нет 100 секунд. Какой алгоритм? – Rudie

+0

@ Rudie: Нет, если вы посмотрите еще раз на мой пример, то вы увидите, что каждая запись увеличивается в совокупности с 50 секунд. Для строк 2 и 4. – Gusgus

+0

не существует 0 сек. Разница между '11: 50: 50' и' 11: 51: 00' не равна 50 секундам, или я глуп? – Rudie

ответ

2

Я хотел бы посмотреть на date() и strtotime()

$array2 = array(); 
$incr = 0; 
foreach ($array1 as $value) { 
    $time = strtotime($value); 
    $array2[] = date('Y-m-d H:i:s', $time + $incr); 
    $incr += 30; 
} 
+0

Это еще не 50 секунд, хотя ... Это 0, 50, 60, 110 ... Итак +50, +10, +50. – Rudie

+0

@SamDufel В ​​этом случае значение $ всегда будет одинаковым, и поэтому время $ всегда будет одинаковым, но если значения массива были разными, вам нужно будет каждый раз вызывать strtotime. –

+0

@Gusgus Есть 10 секунд между 11:50:50 и 11:51:00 –

Смежные вопросы