php 如何使用PHP查找一个月中的第一个和最后一个日期?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/2680501/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How can I find the first and last date in a month using PHP?
提问by Karthik
How can I find the first and last date in a month using PHP? For example, today is April 21, 2010; I want to find April 1, 2010 and April 30, 2010.
如何使用PHP查找一个月中的第一个和最后一个日期?例如,今天是 2010 年 4 月 21 日;我想找到 2010 年 4 月 1 日和 2010 年 4 月 30 日。
回答by Nathan Long
The easiest way is to use date, which lets you mix hard-coded values with ones extracted from a timestamp. If you don't give a timestamp, it assumes the current date and time.
最简单的方法是使用date,它允许您将硬编码值与从时间戳中提取的值混合在一起。如果您不提供时间戳,则假定为当前日期和时间。
// 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()searches the string it's given, like 'm-t-Y', for specific symbols, and it replaces them with values from its timestamp. So we can use those symbols to extract the values and formatting that we want from the timestamp. In the examples above:
date()在给定的字符串中搜索'm-t-Y'特定符号,例如,并用其时间戳中的值替换它们。所以我们可以使用这些符号从时间戳中提取我们想要的值和格式。在上面的例子中:
Ygives you the 4-digit year from the timestamp ('2010')mgives you the numeric month from the timestamp, with a leading zero ('04')tgives you the number of days in the timestamp's month ('30')
Y为您提供时间戳 ('2010') 中的 4 位数年份m为您提供时间戳中的数字月份,前导零('04')t给你时间戳月份的天数('30')
You can be creative with this. For example, to get the first and last second of a month:
你可以发挥创意。例如,要获取一个月的第一秒和最后一秒:
$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!
See http://php.net/manual/en/function.date.phpfor other symbols and more details.
有关其他符号和更多详细信息,请参阅http://php.net/manual/en/function.date.php。
回答by Siva Kranthi Kumar
Simple one
简单的
- Y - A full numeric representation of a year, 4 digits
- m - Numeric representation of a month, with leading zeros
- t - Number of days in the given month
- Y - 年份的全数字表示,4 位数字
- m - 月份的数字表示,带前导零
- t - 给定月份的天数
Reference - http://www.php.net/manual/en/function.date.php
参考 - 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 />';
?>
回答by Henrik L.
You can use the date function to find how many days in a month there are.
您可以使用 date 函数来查找一个月中有多少天。
// 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.
Hope that helps.
希望有帮助。
EDIT: After reading Luis' answer, it occurred to me you may want it in the right format (YY-mm-dd). It may be obvious, but doesn't hurt to mention:
编辑:阅读 Luis 的回答后,我想到您可能需要正确的格式 (YY-mm-dd)。这可能是显而易见的,但提到:
// After the above code
echo date('Y-m-t', $ts);
回答by Luis
This will give you the last day of the month:
这将为您提供本月的最后一天:
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);
}
And the first Day:
第一天:
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);
}
回答by Jimil Choksi
For specific monthand yearuse date() as natural language as following
对于特定的月份和年份,使用 date() 作为自然语言,如下所示
$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?
but for Current month
但对于当月
$first_date = date('d-m-Y',strtotime('first day of this month'));
$last_date = date('d-m-Y',strtotime('last day of this month'));
回答by Faisal
If you want to find the first day and last day from the specified date variable then you can do this like below:
如果要从指定的日期变量中查找第一天和最后一天,则可以执行以下操作:
$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);
For the current date just simple use this
对于当前日期只是简单地使用这个
$first_date = date('Y-m-d',strtotime('first day of this month'));
$last_date = date('Y-m-d',strtotime('last day of this month'));
回答by Yasar Arafath
In simple format
简单的格式
$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);
For next month change $curMonthto $curMonth = date('F',strtotime("+1 months"));
对于下个月的变化 $ curMonth至 $ curMonth =日期( 'F'的strtotime( “+1个月”));
回答by karuppub
To get the first and last date of Last Month;
获取第一个和最后一个日期Last Month;
$dateBegin = strtotime("first day of last month");
$dateEnd = strtotime("last day of last month");
echo date("D-F-Y", $dateBegin);
echo "<br>";
echo date("D-F-Y", $dateEnd);
回答by SunUser
$month=01;
$year=2015;
$num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
echo $num;
display 31 last day of date
显示日期的最后一天 31

