Ngày trong các định dạng
m/d/y
hoặcd-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 IntlDateFormatter
1 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