Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Problema com Retorno do Nome do Dia da Semana em Português

Estou enfrentando um problema com a função abaixo, que deveria retornar o nome do dia da semana em português de acordo com a data fornecida. Atualmente, a função está funcionando, porém retorna o nome em inglês. Alguém teria alguma solução para isso?

//Retornar dia da semana da consulta (em português)
  public function retornarNomeDiaSemanaBD(){
      $dado = $this->buscarDados();
      $data = $dado['Data_Viagem'];
      $dateTime = new DateTime($data);
      setlocale(LC_TIME, 'pt_BR', 'pt_BR.utf-8', 'portuguese');
      $nomeDia = $dateTime->format('l');
      return $nomeDia;
  }

Agradeço antecipadamente a quem puder me auxiliar com essa questão.

2 respostas
solução!

Olá!

Você pode usar um array para mapear os dias da semana em português e usar o formato 'w' do método format, que retorna o dia da semana como um número (onde 0 é domingo, 1 é segunda-feira, e assim por diante). Aqui está como você poderia modificar sua função:

public function retornarNomeDiaSemanaBD(){
    $dado = $this->buscarDados();
    $data = $dado['Data_Viagem'];
    $dateTime = new DateTime($data);
    $diasDaSemana = ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'];
    $indiceDia = $dateTime->format('w'); // Retorna um número de 0 (domingo) a 6 (sábado)
    $nomeDia = $diasDaSemana[$indiceDia]; // Acessa o nome do dia em português usando o índice
    return $nomeDia;
}

Espero ter ajudado e bons estudos!

Show, eu fiz isso, porém usando outro método. Segue abaixo:

//Retornar dia da semana da consulta (em português)
public function retornarNomeDiaSemanaBD(){
    $dado = $this->buscarDados();
    $data = $dado['Data_Viagem'];
    $dateTime = new DateTime($data);
    $nomeDia = $dateTime->format('l');
    $diaDaSemanaPortugues = [
        'sunday' => 'Domingo',
        'monday' => 'Segunda-Feira',
        'tuesday' => 'Terça-Feira',
        'wednesday' => 'Quarta-Feira',
        'thursday' => 'Quinta-Feira',
        'friday' => 'Sexta-Feira',
        'saturday' => 'Sábado'
    ];
    return $diaDaSemanaPortugues[mb_strtolower($nomeDia)];
}