//3.将一个指定的日期时间转换为时间戳 //var_dump(mktime('时','分','秒','月','日','年')); var_dump(mktime('10','30','59','12','30','2001')); //4.将一个字符串格式的日期,转换为时间戳 var_dump(date('Y-m-d H:i:s',strtotime("+1day"))); //明天的现在这个时候 var_dump(date('Y-m-d H:i:s',strtotime("-1day"))); //昨天的现在这个时候 var_dump(date('Y-m-d H:i:s',strtotime("-1week"))); //上周的现在这个时候 var_dump(date('Y-m-d H:i:s',strtotime("-1month"))); //上个月的现在这个时候 var_dump(date('Y-m-d H:i:s',strtotime("-1year"))); //上个月的现在这个时候 var_dump(date('Y-m-d H:i:s',strtotime("-1year +1month +2week +2day"))); //上个月的现在这个时候

calendar_new.php

<!DOCTYPE html>
		<title>万年历</title>
		<meta charset="utf-8"/>
	</head>
			//获取用户查询的年份和月份
			$year = isset($_GET['year'])==true ? $_GET['year'] : date('Y');
			$month = isset($_GET['month'])==true ? $_GET['month'] : date('m');
			//只对$_GET有效
			// $year = $_GET['year'] ?? date('Y');
			// $month = $_GET['month'] ?? date('m');
			$new_year = date('Y',time());
			// echo $new_year;
			$new_month = date('m',time());
			// echo $new_month;
			$new_days = date('d',time());
			//获取当前月第一天的时间戳
			$time = mktime(0,0,0,$month,1,$year);
			//1.首先,获取万年历前方的空格
			$first = date('N',$time)-1;	//0
			//2.然后,获得当前月的天数
			$days = date('t',$time);	//30
			//3.最后,求得万年历后方的空格
			$last = 42-$first-$days	//12
		<center>
			<h2>万年历</h2>
			<h3><?= $year ?> 年 <?= $month ?> 月</h3>
			<form action="./calendar_new.php" method="get">
				年份:<select name='year'>
						for($y=1970; $y<=2100; $y++){
							if($y==$year){
								echo "<option selected value='{$y}'>{$y} 年</option>";
							}else{
								echo "<option value='{$y}'>{$y} 年</option>";
					  </select>
				月份:<select name='month'>
						for($m=1; $m<=12; $m++){
							if($m==$month){
								<option selected value="<?= $m ?>"><?= $m ?> 月</option>
							}else{
								<option value="<?= $m ?>"><?= $m ?> 月</option>
					  </select>
					  <input type="submit" value="查询"/>
			</form>
			<table border='1' width='800' cellspacing='0' cellpadding='5'>
					<th>一</th>
					<th>二</th>
					<th>三</th>
					<th>四</th>
					<th>五</th>
					<th>六</th>
					<th>日</th>
				<tr align='center'>
				//定义一个统计单元格个数的空变量
				$num = 0;
				$new_days = date('d',time());
				//1.循环表格中前方的空格
				for($i=1; $i<=$first; $i++){
					echo "<td>&nbsp;</td>";
					++$num;
					//判断单元格是否到达7的倍数
					if($num%7==0){
						echo "</tr><tr align='center'>";
				//2.循环表格中中间的日期
				for($j=1; $j<=$days; $j++){
					// echo $year;
					// echo $month;
					if(($j==$new_days) && ($year==$new_year) && ($month==$new_month) ){
						echo "<td><font color=red>{$j}</font></td>";
						++$num;
					}else{
					echo "<td>{$j}</td>";
					++$num;
					//判断单元格是否到达7的倍数
					if($num%7==0){
						echo "</tr><tr align='center'>";
				//3.循环表格最后的空格
				for($k=1; $k<=$last; $k++){
					echo "<td>&nbsp;</td>";
					++$num;
					//判断单元格是否到达7的倍数
					if($num%7==0){
						echo "</tr><tr align='center'>";
			</table>
			<a href="./calendar_new.php?year=<?= $year-1 ?>&month=<?= $month ?>">上一年</a>
			<a href="./calendar_new.php?year=<?= $prevy ?>&month=<?= $prevm ?>">上一月</a>
			<a href="./calendar_new.php">回到今天</a>
			<a href="./calendar_new.php?year=<?= $nexty ?>&month=<?= $nextm ?>">下一月</a>
			<a href="./calendar_new.php?year=<?= $year+1 ?>&month=<?= $month ?>">下一年</a>
		</center>
	</body>
</html>

大家可以直接复制代码,放到对应的文件名里就可以运行。适合初学php的人学习使用。

首先,给大家展示一下效果图。功能包括:年份和月份查询,上一年、下一年、上一月、下一月和回到今天这几个功能。项目文件项目代码1.php&lt;?php echo "&lt;pre&gt;"; //设置时区 //date_default_timezone_set('America/New_York'); //1.获取时间戳 var_dump(time()); //2.格式化时间戳 var_dump(date('Y-m-d H:i:s',time()));.. - 公历:我们平常使用的日历,也就是 Gregorian Calendar。 - 农历:中国传统使用的日历,又称阴历。农历比公历慢大约一个月,所以每年农历的月份都会比公历的月份多一个月。 - 闰年:公历中,能被 4 整除但不能被 100 整除的年份是闰年,或者能被 400 整除的年份也是闰年。闰年有 29 天的 2 月。 那么,我们可以先 一个函数来判断一个年份是不是闰年: ```python def is_leap_year(year): if year % 4 == 0 and year % 100 != 0: return True if year % 400 == 0: return True return False 然后,我们可以 一个函数来计算公历中某个月的天数: ```python def days_in_month(year, month): if month in [1, 3, 5, 7, 8, 10, 12]: return 31 if month in [4, 6, 9, 11]: return 30 if month == 2: if is_leap_year(year): return 29 else: return 28 接下来,我们可以 一个函数来计算公历中某年的天数: ```python def days_in_year(year): if is_leap_year(year): return 366 return 365 最后,我们可以 一个函数来输出公历中某年某月的日历: ```python def print_calendar(year, month): # 输出日历的头部 print("Sun Mon Tue Wed Thu Fri Sat") # 计算当月 1 号是星期几 start_day = 1 # 假设 1 ### 回答2: 万年历是指能够显示计算机时代至远古时代任意年份、月份的月历,包括每个月的日期排列、星期几等信息。下面是使用Python来编 一个简单的万年历的示例代码: ```python import calendar def print_calendar(year, month): c = calendar.TextCalendar(calendar.SUNDAY) calendar_str = c.formatmonth(year, month) print(calendar_str) def main(): year = int(input("请输入年份:")) month = int(input("请输入月份:")) print(" - - - - - %d年%d月 - - - - - " % (year, month)) print_calendar(year, month) if __name__ == "__main__": main() 这段代码使用了`calendar`模块来生成日历信息,首先通过`input`函数获取用户输入的年份和月份。然后通过`TextCalendar`类来生成指定年份和月份的日历信息。最后通过`print`函数将日历信息打印出来。 用户将会被要求输入一个年份和一个月份,程序将会生成并显示出相应的月历信息。 这是一个简单的示例,你也可以根据自己的需求加入更多的功能,比如支持一次性打印多个月份的日历,或者添加查找特定日期的功能等等。 ### 回答3: 万年历是一个可以显示公历日期的日历,包括年、月和日。使用Python编 万年历可以通过日期计算和条件判断来实现。 下面是一个简单的Python代码示例实现一个万年历: ```python import calendar def get_calendar(year): # 使用calendar库中的TextCalendar类来获取指定年份的日历 cal = calendar.TextCalendar() # 使用formatyear方法获取整个年份的日历,并返回字符串 return cal.formatyear(year) def main(): while True: year = int(input("请输入要查看的年份:")) if year <= 0: raise ValueError break except ValueError: print("输入错误,请输入一个大于0的整数年份!") # 调用get_calendar函数获取日历字符串 calendar_str = get_calendar(year) # 打印日历 print(calendar_str) if __name__ == "__main__": main() 运行这段代码,就可以输入一个年份,然后输出该年份的日历。 代码首先导入了`calendar`库,然后定义了一个`get_calendar`函数,该函数接受一个年份作为参数,使用`TextCalendar`类获取指定年份的日历,然后调用`formatyear`方法返回日历的字符串表示。 `main`函数中使用一个循环不断读取用户输入的年份(必须是大于0的整数),然后调用`get_calendar`函数获取指定年份的日历字符串,并打印出来。