Hướng dẫn dùng dd/mm/yyyy fecha trong PHP

Ngày trong các định dạng m/d/yhoặc d-m-yđịnh dạng được định nghĩa bằng cách nhìn vào dấu phân cách giữa các thành phần khác nhau: nếu dấu phân cách là dấu gạch chéo [ /], thì người Mỹ m/d/yđược giả sử; trong khi nếu dấu phân cách là dấu gạch ngang [ -] hoặc dấu chấm [ .], thì d-m-y định dạng châu Âu được giả sử. Kiểm tra thêm ở đây .

Sử dụng chức năng ngày mặc định.

$var = "20/04/2012";
echo date["Y-m-d", strtotime[$var] ];

EDIT Tôi vừa thử nghiệm nó, và bằng cách nào đó, PHP không hoạt động tốt với định dạng dd / mm / yyyy. Đây là một giải pháp khác.

$var = '20/04/2012';
$date = str_replace['/', '-', $var];
echo date['Y-m-d', strtotime[$date]];

209 hữu ích 5 bình luận chia sẻ

I have this MySQL query, which returns two dates [which are both formatted as a-m-Y]. Now I want to translate this date into my own language [Danish]. How can I do that. I have tried both the setlocale[] and strftime[] functions, but it won't work. I know it's a very basic question, but i really need help :] Thanks a lot!

asked Aug 2, 2011 at 10:53

Use setlocale and strftime together:

setlocale[LC_TIME, array['da_DA.UTF-8','[email protected]','da_DA','danish']];
echo strftime["%A"]; // outputs 'tirsdag'

Works on my php installation on Windows.

strftime[]: Warning! This function has been DEPRECATED as of PHP 8.1.0. Relying on this function is highly discouraged.

answered Aug 2, 2011 at 11:03

5

I found that setlocale isn't reliable, as it is set per process, not per thread [the manual mentions this]. This means other running scripts can change the locale at any time. A solution is using IntlDateFormatter from the intl php extension.

  • Install intl if necesarry [ubuntu]: sudo apt-get install php5-intl

  • Install the locale you want to use [I'm using italian as an example]: sudo locale-gen it_IT

  • Generate a locally formatted date:

$fmt = new \IntlDateFormatter['it_IT', NULL, NULL];
$fmt->setPattern['d MMMM yyyy HH:mm']; 
// See: //userguide.icu-project.org/formatparse/datetime for pattern syntax
echo $fmt->format[new \DateTime[]]; 
// Output: 6 gennaio 2016 12:10

answered Jun 7, 2016 at 11:55

Simon EpskampSimon Epskamp

8,0463 gold badges52 silver badges56 bronze badges

1

I don't think the date[] function is quite evolved enough for you, here.

Instead, I would recommend you take a look at the IntlDateFormatter1 class [quoting] :

Date Formatter is a concrete class that enables locale-dependent formatting/parsing of dates using pattern strings and/or canned patterns.

There are a couple of examples on the manual page of IntlDateFormatter::format[], where that method is used to display a date in two different languages, by just setting the desired locale.


1. bundled with PHP >= 5.3

answered Aug 2, 2011 at 10:56

Pascal MARTINPascal MARTIN

388k77 gold badges646 silver badges656 bronze badges

2

This Will Surely works for you if you want norwegian date and month format

$date = '2016-11-16 05:35:14';
setlocale[LC_TIME, array['nb_NO.UTF-8','[email protected]','nb_NO','norwegian']];
echo strftime["%e %b %Y",strtotime[$date]];

if you want to get other language locale ids like nb_NO then refer this site International Components for Unicode [ICU] Data

answered Nov 4, 2020 at 13:38

DhruvDhruv

1,7341 gold badge5 silver badges6 bronze badges

If you are trying to convert a datetime try this:

$fecha = $dateConsulta->format['d-M-Y'];  
$fecha = str_replace['Jan','Ene',$fecha];
$fecha = str_replace['Apr','Abr',$fecha];
$fecha = str_replace['Aug','Ago',$fecha];
$fecha = str_replace['Dec','Dic',$fecha];

Pranav Singh

15.1k24 gold badges76 silver badges98 bronze badges

answered Jan 7, 2014 at 2:48

Chủ Đề