Modificando meses com php dateTime: descobrindo o comportamento pretendido
Ao trabalhar com a classe DateTime do PHP, adicionar ou subtrair meses nem sempre produz os resultados esperados. À medida que a documentação adverte, "cuidado" dessas operações, pois elas não são tão intuitivas quanto parecem. $ DATE-> Modify ('1 mês'); // Avançar por 1 mês eco $ data-> formato ('y-m-d'). "\ n"; // imprime 2001-01-31 $ DATE-> Modify ('1 mês'); // Avance mais um mês eco $ data-> formato ('y-m-d'). "\ n"; // imprime 2001-03-03
em vez de incrementar o mês como esperado, o resultado é um salto para 3 de março. Por que isso é? 1 de fevereiro. Opções:
cálculo manual:
Verifique o número de dias no próximo mês e ajuste manualmente a data de acordo. Exemplo:$date = new DateTime('2000-12-31'); $date->modify(' 1 month'); // Move ahead by 1 month echo $date->format('Y-m-d') . "\n"; // Prints 2001-01-31 $date->modify(' 1 month'); // Advance another month echo $date->format('Y-m-d') . "\n"; // Prints 2001-03-03
$ d = new DateTime ('2010-01-31'); $ d-> modify ('primeiro dia do próximo mês'); eco $ d-> formato ('f'), "\ n"; // Imprime corretamente fevereiro
Conclusão
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3