PHP kullanarak bir ayın ilk ve son tarihini nasıl bulabilirim? Örneğin, bugün 21 Nisan 2010; 1 Nisan 2010 ve 30 Nisan 2010'u bulmak istiyorum.
Yanıtlar:
En kolay yol, date
sabit kodlanmış değerleri bir zaman damgasından çıkarılanlarla karıştırmanıza izin veren kullanımıdır . Bir zaman damgası vermezseniz, geçerli tarih ve saati varsayar.
// Current timestamp is assumed, so these find first and last day of THIS month
$first_day_this_month = date('m-01-Y'); // hard-coded '01' for first day
$last_day_this_month = date('m-t-Y');
// With timestamp, this gets last day of April 2010
$last_day_april_2010 = date('m-t-Y', strtotime('April 21, 2010'));
date()
'm-t-Y'
Belirli semboller için olduğu gibi verilen dizeyi arar ve bunları zaman damgasındaki değerlerle değiştirir. Bu sembolleri, zaman damgasından istediğimiz değerleri ve biçimlendirmeyi çıkarmak için kullanabiliriz. Yukarıdaki örneklerde:
Y
size zaman damgasından ('2010') itibaren 4 basamaklı yılı verirm
başında sıfır ('04') olacak şekilde zaman damgasından itibaren sayısal ayı verirt
size zaman damgasının bulunduğu aydaki gün sayısını verir ('30')Bununla yaratıcı olabilirsiniz. Örneğin, bir ayın ilk ve son saniyesini almak için:
$timestamp = strtotime('February 2012');
$first_second = date('m-01-Y 00:00:00', $timestamp);
$last_second = date('m-t-Y 12:59:59', $timestamp); // A leap year!
Diğer semboller ve daha fazla ayrıntı için http://php.net/manual/en/function.date.php adresine bakın .
Basit olan
Referans - http://www.php.net/manual/en/function.date.php
<?php
echo 'First Date = ' . date('Y-m-01') . '<br />';
echo 'Last Date = ' . date('Y-m-t') . '<br />';
?>
Bir ayda kaç gün olduğunu bulmak için tarih işlevini kullanabilirsiniz.
// Get the timestamp for the date/month in question.
$ts = strtotime('April 2010');
echo date('t', $ts);
// Result: 30, therefore, April 30, 2010 is the last day of that month.
Umarım yardımcı olur.
DÜZENLEME: Luis'in cevabını okuduktan sonra, doğru formatta isteyebilirsiniz (YY-aa-gg) bana geldi. Açık olabilir, ancak şunu belirtmekten zarar gelmez:
// After the above code
echo date('Y-m-t', $ts);
Bu size ayın son gününü verecektir:
function lastday($month = '', $year = '') {
if (empty($month)) {
$month = date('m');
}
if (empty($year)) {
$year = date('Y');
}
$result = strtotime("{$year}-{$month}-01");
$result = strtotime('-1 second', strtotime('+1 month', $result));
return date('Y-m-d', $result);
}
Ve ilk Gün:
function firstDay($month = '', $year = '')
{
if (empty($month)) {
$month = date('m');
}
if (empty($year)) {
$year = date('Y');
}
$result = strtotime("{$year}-{$month}-01");
return date('Y-m-d', $result);
}
Belirli ay ve yıl için aşağıdaki gibi doğal dil olarak date () kullanın
$first_date = date('d-m-Y',strtotime('first day of april 2010'));
$last_date = date('d-m-Y',strtotime('last day of april 2010'));
// Isn't it simple way?
ancak Geçerli ay için
$first_date = date('d-m-Y',strtotime('first day of this month'));
$last_date = date('d-m-Y',strtotime('last day of this month'));
Belirtilen tarih değişkeninden ilk günü ve son günü bulmak isterseniz aşağıdaki gibi yapabilirsiniz:
$date = '2012-02-12';//your given date
$first_date_find = strtotime(date("Y-m-d", strtotime($date)) . ", first day of this month");
echo $first_date = date("Y-m-d",$first_date_find);
$last_date_find = strtotime(date("Y-m-d", strtotime($date)) . ", last day of this month");
echo $last_date = date("Y-m-d",$last_date_find);
Geçerli tarih için bunu kullanın
$first_date = date('Y-m-d',strtotime('first day of this month'));
$last_date = date('Y-m-d',strtotime('last day of this month'));
Basit formatta
$curMonth = date('F');
$curYear = date('Y');
$timestamp = strtotime($curMonth.' '.$curYear);
$first_second = date('Y-m-01 00:00:00', $timestamp);
$last_second = date('Y-m-t 12:59:59', $timestamp);
Önümüzdeki ay değişim için $ curMonth için $ curMonth = date ( 'F', strtotime ( "+ 1 ay"));