Переведите названия дней на другие языки - PullRequest
2 голосов
/ 18 апреля 2020

Привет всем, я новичок в PHP ... с этой функцией у меня есть название дней между двумя датами, но я не могу перевести его на итальянский, не разбив его. Кто-нибудь может мне помочь? Я пытался использовать strftime () в этих двух режимах, но он выдает мне ошибку: strftime () ожидает, что параметр 2 будет int, объект задан, я сделал var_dump для даты, и это объект, мне нужно привести его или это не ответ на мой вопрос?

$from_date = new DateTime($from_date);
    $to_date = new DateTime($to_date);

    for ($date = $from_date; $date <= $to_date; $date->modify('+1 day')) {
       echo $date->format('l') . "\n";
       //echo strftime("%A", $date); error : strftime() expects parameter 2 to be int, object given
      //var_dump($date);  object(DateTime)
      }

вывод: среда четверг пятница

Я выбираю $ from_date и $ to_date from:

+------------+------------+
| from_date  | to_date    |
+============+============+
| 2020-04-01 | 2020-04-03 |
+------------+------------+

Ответы [ 2 ]

2 голосов
/ 18 апреля 2020

Это должно работать для вас, если вы правильно установили локаль setlocale(LC_TIME, 'it_IT.UTF-8');. Я также немного изменил ваш код, чтобы сделать его более читабельным и лаконичным.

<?php
setlocale(LC_TIME, 'it_IT.UTF-8');
$period = new DatePeriod(new DateTime('2020-04-07'),new DateInterval('P1D'),new DateTime('2020-04-18'));
foreach ($period as $key => $value) {
  echo strftime("%A", $value->getTimestamp()).PHP_EOL;     
}
?>

WORKING DEMO: https://3v4l.org/sYirG

0 голосов
/ 18 апреля 2020

Я исправил это с помощью:

for ($date = $from_date; $date <= $to_date; $date->modify('+1 day')) {
      echo utf8_encode (strftime("%A", $date->getTimestamp())).PHP_EOL;  
     }

вывод: mercoledì giovedì venerdì

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...