Получение даты текущего дня в PHP
Я хочу получить дату на текущий день в php. то, что я попробовал, здесь...
echo $x."<br>";
echo date("D",$x)."<br>";
Но выход был
21-02-10
Thu
Это дает правильную дату, но не правильное значение дня. Почему..?
То, что я хочу, это дата понедельника для текущей недели, которая может быть сгенерирована в любой день недели. так что я сделал, я беру сегодняшний день и сравниваю с (Пн, Вт.... Солнце) и соответственно создаю отметку времени, используя
case "Mon":
$startdate1=date("d-m-y");
$parts = explode('-',$startdate1);
$startdate2 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+1),$parts[2]));
$startdate3 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+2),$parts[2]));
$startdate4 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+3),$parts[2]));
$startdate5 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+4),$parts[2]));
$startdate6 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+5),$parts[2]));
$startdate7 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+6),$parts[2]));
$dates=array(1 => $startdate1,$startdate2,$startdate3,$startdate4,$startdate5,$startdate6,$startdate7);
$i=1;
while( $i <= 7 )
{
echo $dates[$i];
$i++;
}
break;
$ date - это последний массив, соответствующий сегодняшнему дню, который должен быть возвращен. Есть ли другой лучший способ сделать эту операцию.
Ответы
Ответ 1
Что я сделал для его решения, вместо даты (d-m-y ') в функции даты используется формат даты (' d-m-Y '), что вызывало проблему. Следовательно strtotime принял формат и дал правильный результат для
$t=date('d-m-Y');
echo date("D",strtotime($t));
Ответ 2
Я попробовал это, чтобы получить текущий день.
echo date('l'); // output: current day.
Ответ 3
Как насчет этого:
//today is monday
if (1 == date('N')){
$monday = time();
}else{
$monday = strtotime('last Monday');
}
for ($i = 0; $i < 7; $i++){
echo date('d-m-Y', $monday) . '<br>';
$monday = strtotime('tomorrow', $monday);
}
Сначала найдите понедельник, если это не сегодня, затем распечатайте 7 дат
Ответ 4
Что я хочу, день - это дата понедельника для текущей недели, которая может быть сгенерированный в любой день недели.
Что ты хочешь. $mday
- это день месяца этой недели в понедельник. Nevermind, если это не положительно, mktime
справится с этим правом. $monday
имеет отметку времени полуночи в понедельник.
$now = getdate();
$mday = $now['mday'] - ($now['wday'] + 6) % 7;
$monday = mktime(0, 0, 0, $now['mon'], $mday, $now['year']);
echo(date('d-m-y', $monday));
Ответ 5
что я пробовал здесь...
echo date("D",$x)."<br>";
date
ожидает значение временной метки (int) в качестве второго параметра. Ваш $x
- это строка, содержащая двусмысленный формат даты. Сначала конвертируйте эту дату в метку времени, используя strptime
или strtotime
и правильно используйте функцию date
, чтобы получить правильное значение дня.
Что касается вашей второй части, вам не нужно (и не должно) проверять имя дня, чтобы рассчитать правильный понедельник, вторник и т.д. Более эффективным подходом является, например, использование strtotime
для получения last Monday
и т.д..
Ответ 6
Вероятно, вы передаете строку как временную метку
echo $x."<br>";
echo date("D",$x)."<br>";
Удалите $x
, и он выведет правильный день или изменит его на
$x = '21-02-2010';
echo date('D', strtotime($x));
Ответ 7
Я использую функцию date и путь к ней "D", которая ссылается на текущий день, и работает со мной
$today = date("D");
и получить полную информацию о текущей дате
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001