Я пытаюсь получить последние 7 дней недели на голландском языке.Получение последних 7 дней само по себе не проблема, я делаю это так:
function getLastNDays($days, $format = 'd/m'){
$m = date("m"); $de= date("d"); $y= date("Y");
$dateArray = array();
for($i=0; $i<=$days-1; $i++){
$dateArray[] = '' . date($format, mktime(0,0,0,$m,($de-$i),$y)) . '';
}
return array_reverse($dateArray);
}
$arr = getLastNDays(7, 'Y-m-d');
Когда я повторяю цикл над $arr
и помещаю результаты в $day
, это то, как выглядит каждый $day
:
2019-09-19
2019-09-20
2019-09-21
2019-09-22
2019-09-23
2019-09-24
2019-09-25
Таким образом, чтобы получить его в сокращенной версии, внутри моего цикла я делаю:
$date = DateTime::createFromFormat("Y-m-d", $day);
$dag = $date->format("D");
Что дает мне:
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Теперь перевестия узнал, что сначала могу использовать setlocale
, а затем strftime
, и теперь весь мой код выглядит так:
function getLastNDays($days, $format = 'd/m'){
$m = date("m"); $de= date("d"); $y= date("Y");
$dateArray = array();
for($i=0; $i<=$days-1; $i++){
$dateArray[] = '' . date($format, mktime(0,0,0,$m,($de-$i),$y)) . '';
}
return array_reverse($dateArray);
}
$arr = getLastNDays(7, 'Y-m-d');
foreach($arr as $day) {
$date = DateTime::createFromFormat("Y-m-d", $day);
$dag = $date->format("D");
setlocale(LC_TIME, 'nl_NL');
$dagnl = strftime('%a', $date);
echo $dagnl . "<br>";
}
Но это дает мне всего 7 пустых строк (потому что
повторяется).Почему не работает?