Доброго времени суток всем... Занимаюсь переписыванием кода с ASP на PHP. Наткнулся на такой код: if ((r1.SerDateAct_S > DateTime.Now) || (!DateTime.Equals(new DateTime(), r1.SerDateDeact_S) && (r1.SerDateDeact_S <= DateTime.Now))) { ... } Можете помочь сделать такой же код с сохранением логики сравнения дат, но с использованием функций php. Заранее благодарю....
я ж просил r1.SerDateAct_S, а ты мне rdr.GetDateTime(rdr.GetOrdinal("DateAct_S")), которой вообще нет в условии выше. В общем тебе нужны date(), time(), strtotime() Смотри, что под каждой переменной/процедурой и конвертируй, сравнивай.
извени утром спешил: r1.SerDateAct_S = rdr.GetDateTime(rdr.GetOrdinal("DateAct_S")); эта дата берется из базы... Что сравнивать понятно, но никак не могу понят смысл этого выражения (!DateTime.Equals(new DateTime(), r1.SerDateDeact_S) && (r1.SerDateDeact_S <= DateTime.Now)) Что проверяется функцией Equals?
наверное эквивалентность переданных ей значений. в справке по асп должно быть хорошо про это написано.
Метод equals проверяет равенство объектов структуры datetime. Значит r1.SerDateDeact_S должно быть равно new DateTime(). Но new DateTime().ToString() возвращает "01.01.0001 0:00:00". Есть у тебя такие даты в базе? Сомневаюсь что-то. Возможно, при определённых обстоятельствах rdr.GetDateTime() может возвращать new DateTime(), тогда такое условие оправдано. Не надо пытаться переписать код с С# на php, это дохлый номер. Поймите логику и напишите заново.
суть такая - заданы две даты (первая больше второй)... нужно условие если текущая дата выходит за рамки этого диапазона то TRUE если находится в нем то FALSE.