Я хочу получить дату в течение текущего дня в php., что я попробовал, здесь...
echo $x."<br>";
echo date("D",$x)."<br>";
Но вывод был
21-02-10
Thu
Это дает корректную дату, но не корректное дневное значение. Почему..?
То, что я хочу день, является датой в течение понедельника в течение текущей недели, которая может быть сгенерирована в любой день недели. таким образом, то, что я сделал, было, я занимаю сегодняшний день и соответствую (понедельник, вторник Sun) и соответственно создаю использование метки времени
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 является заключительным массивом, соответствующим к сегодня, который должен быть возвращен. Есть ли любой другой лучший метод, чтобы сделать эту операцию.
Для решения этой проблемы я использовал формат даты ('d-m-Y') вместо ('d-m-y') в функции date, что и вызывало проблему. Поэтому strtotime приняла формат и выдала правильный результат для
$t=date('d-m-Y');
echo date("D",strtotime($t));
Вы, вероятно, передаете строку как отметку времени
echo $x."<br>";
echo date("D",$x)."<br>";
Удалите $ x
, и она выведет правильный день или изменит его на
$x = '21-02-2010';
echo date('D', strtotime($x));
Как насчет этого:
//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 дат
День, который я хочу, - это дата понедельника для текущей недели, которая может быть генерируется в любой день недели.
Вот чего ты хочешь. $ mday
- месячный день понедельника этой недели. Nevermind, если он не является положительным, mktime
будет обрабатывать это право. $ понедельник
имеет отметку времени полуночи понедельника.
$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));
то, что я пробовал, вот здесь ...
echo date ("D", $ x). "
";
date
ожидает значение временной метки (int) в качестве второго параметра. Ваш $ x
- это строка, содержащая неоднозначный формат даты. Сначала преобразуйте эту дату в метку времени, используя strptime
или strtotime
, и правильно используйте функцию date
, чтобы получить правильное значение дня.
Что касается второй части, вам не нужно (и не следует) проверять название дня, чтобы вычислить правильный понедельник, вторник и т. Д. Более эффективным подходом является , например с использованием strtotime
, чтобы получить в прошлый понедельник
и т. д.