Рандомная дата в цикле - PHP

12
S
На сайте с 30.09.2016
Offline
469
#11

Сдаюсь, Samail победил. Я из тех же соображений просто сразу разбил весь временной промежуток на интервалы, а он пошёл более рандомным путём. О чём я сразу и написал - это вопрос логики и алгоритма.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Gerga
На сайте с 02.08.2015
Offline
94
#12

если не ООП, то хотя бы так:


$start = mktime(0,0,0,1,1,2018);
$end = mktime(0,0,0,8,11,2019);

$period = ($end - $start) / count($result2);

foreach ($result2 as $value) {
$start += $period;

$date = date('Y-m-d h:i', $start);
}

или так:


$start = mktime(0,0,0,1,1,2018);
$end = mktime(0,0,0,8,11,2019);

$period = ($end - $start) / (count($result2) - 1);

foreach ($result2 as $value) {
$date = date('Y-m-d h:i', $start);

$start += $period;
}
S
На сайте с 30.09.2016
Offline
469
#13

Gerga, ну ты написал то же самое, что и я, только нерандомно. У Самаила лучше.

Gerga
На сайте с 02.08.2015
Offline
94
#14

Sitealert, нет, посмотри получше. Мой вариант распределяется по всему интервалу от точки А к точке В. Да и почище будет всех остальных

S
На сайте с 30.09.2016
Offline
469
#15

Gerga, а чего смотреть-то? Плохой код. Всё равно Самаил победил. Можно расходиться без призов.

Gerga
На сайте с 02.08.2015
Offline
94
#16

Sitealert, дай 1 объективную причину, почему эта реализация плохая? Эта реализация собрала в себе идеи из 3 предыдущих вариантов. Byblick32, Sitealert и Samail. Как по мне, самый лучший вариант - это ОПП подход с использованием DateTime класса, он позволяет хорошо абстрагировать.

S
На сайте с 30.09.2016
Offline
469
#17
Gerga:
Sitealert, дай 1 объективную причину, почему эта реализация плохая?

А можно я дам 2 причины?

1. Результат нерандомный.

2. Результат всегда один и тот же, без вариантов:

2018-01-01 12:00

2018-05-27 06:45

2018-10-21 12:30

2019-03-17 06:15

2019-08-11 12:00

Gerga
На сайте с 02.08.2015
Offline
94
#18
Sitealert:
А можно я дам 2 причины?
1. Результат нерандомный.
2. Результат всегда один и тот же, без вариантов:

Sitealert, я в него это и закладывал :) Ведь рандомность ТСу нужна как костыль, а тут чёткое распределение по указанному интервалу.

S
На сайте с 30.09.2016
Offline
469
#19
Gerga:
Ведь рандомность ТС нужна как костыль.

Какая разница как что? Главное, что нужна. То есть если у двух статей по 5 комментов, то не должно быть одинаковых дат у этих комментов. И одинакового интервала между комментами тоже не должно быть. Поэтому - game over.

Gerga
На сайте с 02.08.2015
Offline
94
#20

Sitealert, если нужно рандомность можно легко добавить, но распределенность по интервалу сохранится, хоть она и не будет такой чёткой.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий