PHP - mktime أو strtotime؟
سؤال
أحاول تحويل 2010-02 إلى فبراير 2010. لكنني أظل حصلت على ديسمبر 1969
لقد حاولت استخدام mktime، strtotime، وبعض مزيج من الاثنين، ولكن لا يزال لم يتمكن من القيام بذلك ...
هذا ما جربته مؤخرا ...
$path_title = date('F, Y', mktime(0,0,0,2,0,2010));
المحلول
سيكون هذا وسيلة للقيام بذلك:
$dateString = '2010-02';
list($year, $month) = explode('-', $dateString);
$timeStamp = mktime(0, 0, 0, $month, 1, $year);
echo date('F, Y', $timestamp);
هناك طريقة أخرى هي:
$dateString = '2010-02';
$timestamp = strtotime($dateString . '-01');
echo date('F, Y', $timestamp);
strtotime
لا يمكن التعامل مع التواريخ الغامضة مثل "2010-02"، ولكن إذا قمت بإنجاحه في أنه يجب أن تعمل.
خلاف ذلك، قد ترغب في النظر في شيء مثل DateTime::createFromFormat
.
نصائح أخرى
جرب هذا:
$str = '2010-02';
echo date('F, Y',mktime(0,0,0,substr($str,-2),1,substr($str,0,4)));
عليك أن تتأكد من استخدام قيم صالحة mktime()
. وبعد في مثالك الذي قمت بتحريره في السؤال، لديك 0
كلما كان اليوم، وهو اليوم الأول في اليوم الأول ناقص واحد، مما يجعلك في الشهر السابق.
لا تنتمي إلى StackOverflow