texto tag strip_tags remove name limpiar ejemplo all php date

php - remove - strip_tags wordpress



¿Cómo encontrar el último día del mes a partir de la fecha? (23)

¿Cómo puedo obtener el último día del mes en PHP?

Dado:

$a_date = "2009-11-23"

Quiero 2009-11-30; y dado

$a_date = "2009-12-23"

Quiero el 2009-12-31.


Aquí está una función completa:

public function get_number_of_days_in_month($month, $year) { // Using first day of the month, it doesn''t really matter $date = $year."-".$month."-1"; return date("t", strtotime($date)); }

Esto daría como resultado lo siguiente:

echo get_number_of_days_in_month(2,2014);

Salida: 28


De otra manera usando mktime y no date (''t''):

$dateStart= date("Y-m-d", mktime(0, 0, 0, 10, 1, 2016)); //2016-10-01 $dateEnd = date("Y-m-d", mktime(0, 0, 0, 11, 0, 2016)); //This will return the last day of october, 2016-10-31 :)

Así de esta manera calcula si es 31,30 o 29


El código que usa strtotime () fallará después del año 2038. (como se indica en la primera respuesta en este hilo) Por ejemplo, intente usar lo siguiente:

$a_date = "2040-11-23"; echo date("Y-m-t", strtotime($a_date));

Dará respuesta como: 1970-01-31

Entonces, en lugar de strtotime, se debe usar la función DateTime. El siguiente código funcionará sin el problema del año 2038:

$d = new DateTime( ''2040-11-23'' ); echo $d->format( ''Y-m-t'' );


Esta es una forma mucho más elegante de llegar al final del mes:

$thedate = Date(''m/d/Y''); $lastDayOfMOnth = date(''d'', mktime(0,0,0, date(''m'', strtotime($thedate))+1, 0, date(''Y'', strtotime($thedate))));


Esto debería funcionar:

$week_start = strtotime(''last Sunday'', time()); $week_end = strtotime(''next Sunday'', time()); $month_start = strtotime(''first day of this month'', time()); $month_end = strtotime(''last day of this month'', time()); $year_start = strtotime(''first day of January'', time()); $year_end = strtotime(''last day of December'', time()); echo date(''D, M jS Y'', $week_start).''<br/>''; echo date(''D, M jS Y'', $week_end).''<br/>''; echo date(''D, M jS Y'', $month_start).''<br/>''; echo date(''D, M jS Y'', $month_end).''<br/>''; echo date(''D, M jS Y'', $year_start).''<br/>''; echo date(''D, M jS Y'', $year_end).''<br/>'';


Extensión de la API de Carbon para PHP DateTime

Carbon::parse("2009-11-23")->lastOfMonth()->day;

o

Carbon::createFromDate(2009, 11, 23)->lastOfMonth()->day;

volverá

30


Hay maneras de llegar el último día del mes.

//to get last day of current month echo date("t", strtotime(''now'')); //to get last day from specific date $date = "2014-07-24"; echo date("t", strtotime($date)); //to get last day from specific date by calendar $date = "2014-07-24"; $dateArr=explode(''-'',$date); echo cal_days_in_month(CAL_GREGORIAN, $dateArr[1], $dateArr[0]);


Intenta esto, si estás usando PHP 5.3+,

$a_date = "2009-11-23"; $date = new DateTime($a_date); $date->modify(''last day of this month''); echo $date->format(''Y-m-d'');

Para buscar la fecha del mes siguiente, modifíquelo como sigue,

$date->modify(''last day of 1 month''); echo $date->format(''Y-m-d'');

y así..


Llego tarde pero hay varias formas fáciles de hacer esto como se mencionó:

$days = date("t"); $days = cal_days_in_month(CAL_GREGORIAN, date(''m''), date(''Y'')); $days = date("j",mktime (date("H"),date("i"),date("s"),(date("n")+1),0,date("Y")));

Usar mktime () es mi objetivo para tener un control completo sobre todos los aspectos del tiempo ... IE

echo "<br> ".date("Y-n-j",mktime (date("H"),date("i"),date("s"),(11+1),0,2009));

Poner el día a 0 y mover su mes arriba 1 le dará el último día del mes anterior. Los números 0 y negativos tienen el efecto similar en los diferentes argumentos. PHP: mktime - Manual

Como han dicho algunos, strtotime no es la forma más sólida de ir y poca si ninguna es tan versátil.



Lo que está mal: lo más elegante para mí es usar DateTime

Me pregunto si no veo DateTime::createFromFormat , one-liner

$lastDay = /DateTime::createFromFormat("Y-m-d", "2009-11-23")->format("Y-m-t");


Podría crear una fecha para el primero del mes siguiente y luego usar strtotime("-1 day", $firstOfNextMonth)


Puede usar " t " en la función de fecha para obtener el número de días en un mes en particular.

El código será algo así:

function lastDateOfMonth($Month, $Year=-1) { if ($Year < 0) $Year = 0+date("Y"); $aMonth = mktime(0, 0, 0, $Month, 1, $Year); $NumOfDay = 0+date("t", $aMonth); $LastDayOfMonth = mktime(0, 0, 0, $Month, $NumOfDay, $Year); return $LastDayOfMonth; } for($Month = 1; $Month <= 12; $Month++) echo date("Y-n-j", lastDateOfMonth($Month))."/n";

El código es autoexplicado. Así que espero que ayude.


Puedes encontrar el último día del mes de varias maneras. Pero simplemente puedes hacer esto usando PHP strtotime() y date() function. Imagino que tu código final se vería así:

$a_date = "2009-11-23"; echo date(''Y-m-t'',strtotime($a_date));

Demo en vivo

Pero si está utilizando PHP> = 5.2, le sugiero que utilice el nuevo objeto DateTime. Por ejemplo, como a continuación:

$a_date = "2009-11-23"; $date = new DateTime($a_date); $date->modify(''last day of this month''); echo $date->format(''Y-m-d'');

Demo en vivo

Además, puedes resolver esto usando tu propia función como a continuación:

/** * Last date of a month of a year * * @param[in] $date - Integer. Default = Current Month * * @return Last date of the month and year in yyyy-mm-dd format */ function last_day_of_the_month($date = '''') { $month = date(''m'', strtotime($date)); $year = date(''Y'', strtotime($date)); $result = strtotime("{$year}-{$month}-01"); $result = strtotime(''-1 second'', strtotime(''+1 month'', $result)); return date(''Y-m-d'', $result); } $a_date = "2009-11-23"; echo last_day_of_the_month($a_date);


Sé que esto es un poco tarde, pero creo que hay una forma más elegante de hacerlo con PHP 5.3+ utilizando la clase DateTime :

$date = new DateTime(''now''); $date->modify(''last day of this month''); echo $date->format(''Y-m-d'');


Si usa la extensión Carbon API para PHP DateTime, puede obtener el último día del mes con:

$date = Carbon::now(); $date->addMonth(); $date->day = 0; echo $date->toDateString(); // use toDateTimeString() to get date and time



También puedes usarlo con datetime.

$date = new /DateTime(); $nbrDay = $date->format(''t''); $lastDay = $date->format(''Y-m-t'');


Tu solución está aquí ..

$lastday = date(''t'',strtotime(''today''));


Usar Zend_Date es bastante fácil:

$date->setDay($date->get(Zend_Date::MONTH_DAYS));


t devuelve el número de días en el mes de una fecha determinada (ver los documentos para la date ):

$a_date = "2009-11-23"; echo date("Y-m-t", strtotime($a_date));


$date1 = $year.''-''.$month; $d = date_create_from_format(''Y-m'',$date1); $last_day = date_format($d, ''t'');


function first_last_day($string, $first_last, $format) { $result = strtotime($string); $year = date(''Y'',$result); $month = date(''m'',$result); $result = strtotime("{$year}-{$month}-01"); if ($first_last == ''last''){$result = strtotime(''-1 second'', strtotime(''+1 month'', $result)); } if ($format == ''unix''){return $result; } if ($format == ''standard''){return date(''Y-m-d'', $result); } }

http://zkinformer.com/?p=134