php - mktime veya strtotime?

2 Cevap php

Ben Şubat, 2010 için 2010-02 dönüştürmek çalışıyorum. Fakat, ben 1969, Aralık almaya devam

Ben mktime, strtotime ve ikisinin bir kombinasyonunu kullanarak denedim, ama yine de bunu yapmak mümkün olmamıştır ...

Bu benim en yakın çalıştığımız budur ...

$path_title = date('F, Y', mktime(0,0,0,2,0,2010));

2 Cevap

Bunu yapmanın bir yolu olacaktır:

$dateString = '2010-02';
list($year, $month) = explode('-', $dateString);
$timeStamp = mktime(0, 0, 0, $month, 1, $year);
echo date('F, Y', $timestamp);

Başka bir yol olacaktır:

$dateString = '2010-02';
$timestamp = strtotime($dateString . '-01');
echo date('F, Y', $timestamp);

strtotime "2010-02" gibi belirsiz tarihleri ​​idare edemez, ama bunu tam bir tarih yaparsanız çalışması gerekir.

Aksi takdirde, DateTime::createFromFormat gibi bir şey içine bakmak isteyebilirsiniz.

Bu deneyin:

$str = '2010-02';
echo date('F, Y',mktime(0,0,0,substr($str,-2),1,substr($str,0,4)));

Eğer mktime() için geçerli değerleri kullanmak emin olmak gerekir. Eğer soru içine düzenlediğiniz örnekte, etkili ilk gün eksi bir önceki aya içine koyar biri olan 0 gün olarak var.