Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 71
1

Изменение переменной с датой

01.02.2018, 14:34. Показов 3372. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, не смог найти достаточно подробное объяснение по манипулированию датой. Смысл в том, что приходит строковая переменная, содержащая дату - мне надо из этой переменной образовать две другие, содержащие первый день месяца выбраной даты и последний. Т.е., допустим, пришло 06.02.18, и мне надо получить 01.02.18 и 28.02.18.
Первая проблема, с которой столкнулся - не могу изменить имеющуюся дату. Пытался так:

PHP
1
2
$month1 = date($filters['daterange1']); // Преобразую полученную строковую переменную в дату
$first = mktime(0,0,0, date("m", $month1), 1, date("y", $month1)); // Выдает ошибку "A non well formed numeric value encountered"
Найти в интернете не смог - там либо про форматы, либо прибавление к текущей дате дня(мес, года, и т.д)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2018, 14:34
Ответы с готовыми решениями:

Форматирование переменной с датой
Здравствуйте, подскажите пожалуйста, как реализовать передачу даты в mysql. У меня следующий код: ...

Сравнение даты создания файла с датой из переменной
Как сравнить дату создания файла с датой хранящейся в Ansistring. Если дату файла сохранить в...

Изменение значения переменной, название которой находится в текстовой переменной
Подскажите как мне сделать: у меня есть цикл _0_gray = 1 for i in range(9): peremen = "_" +...

Изменение переменной цикла (изменение части пути)
Есть желание упростить жизнь, но что то с реализацией туговато:). Есть каталог с файлами для...

2
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
01.02.2018, 15:35 2
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$date = new DateTime('2018-02-06');
 
# Переключения на начало месяца
$date->modify('first day of');
 
echo $date->format('d.m.Y'), PHP_EOL;
 
# Переключения на конец месяца
$date->modify('last day of');
 
echo $date->format('d.m.Y');
1
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 71
12.03.2018, 16:40  [ТС] 3
Para bellum, использовал, думал, что сработало, а нет.
PHP
1
2
3
4
5
6
7
8
$filters['daterange1'] = "02.02.18";
$filters['daterange2'] = "06.02.18";
            $m1 = new DateTime($filters['daterange1']); // "2018-03-12 02:02:18.000000"
            $m2 = new DateTime($filters['daterange2']); // "2018-03-12 06:02:18.000000"
            $m1->modify('first day of'); // "2018-03-01 02:02:18.000000"
            $m2->modify('last day of'); // "2018-03-31 06:02:18.000000"
            $mounth1 = $m1->format('d.m.y'); // "01.03.18"
            $mounth2 = $m2->format('d.m.y'); // "31.03.18"
Как можно увидеть, он почему-то считает вводимую дату временем, и берет текущие число-месяц-год. Я не нашел способа указания формата для функции DateTime. Так как из данных строк ("02.02.18" и "06.02.18") образовать такие же строки с первым и последним числом месяца?

Добавлено через 18 минут
Разобрался. Переделал с использованием метода createFromFormat:

PHP
1
2
$m1 = DateTime::createFromFormat('d.m.y', $filters['daterange1']);
$m2 = DateTime::createFromFormat('d.m.y', $filters['daterange2']);
При гуглежке ни намека на него не было, нашел в документации
0
12.03.2018, 16:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2018, 16:40
Помогаю со студенческими работами здесь

Как сравнить правильно в MySQL запросе поле с датой с текущей датой?
Всем привет! Как сравнить правильно в mysql запросе поле с датой с текущей датой? Мне просто...

SQL: найти разницу между текущей датой и датой заключения договора
Здравствуйте! Помогите, пожалуйста, с запросом SQL. Есть база данных в Access. В С++ Builder 6...

Как заполнить промежуток между начальной датой и конечной датой в пустой таблице?
Возможно ли в MS Accsee в пустой таблице заполнить автоматически промежуток(период) между...

Разность между текущей датой и датой последней покупки
Помогите пожалуйста. Как можно посчитать давность покупки?как это запросом написать? (это вообще...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru