整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript|日期格式化、今天、昨天、明天和

JavaScript|日期格式化、今天、昨天、明天和某天

niapp中的日历组件需要用到开始时间和结束时间,这个时间是字符串形式的,如'2021-01-21'。

组件网址:https://ext.dcloud.net.cn/plugin?id=56

需求

我的需求是得到7天前到现在日期的字符串形式,即

startDate: '2021-11-04'',
endDate: '2021-11-11',

上代码:

Date.prototype.format=function(fmt) {
	var o={
		"M+": this.getMonth() + 1, //月份 
		"d+": this.getDate(), //日 
		"h+": this.getHours(), //小时 
		"m+": this.getMinutes(), //分 
		"s+": this.getSeconds(), //秒 
		"q+": Math.floor((this.getMonth() + 3) / 3), //季度 
		"S": this.getMilliseconds() //毫秒 
	};
	if (/(y+)/.test(fmt)) {
		fmt=fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
	}
	for (var k in o) {
		if (new RegExp("(" + k + ")").test(fmt)) {
			fmt=fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k])
				.length)));
		}
	}
	return fmt;
}
//N天时间戳,时间戳指从1970-01-01 0点开始到某天的毫秒数
function timestamp(days) {
	return days * 24 * 60 * 60 * 1000
}

//几天前,一般以现在的时间为基准,参数默认值老的浏览器可能不支持。
function days_ago(day, base_time=Date.now()) {
	return new Date(base_time - timestamp(day))
}
//最常用的今天、昨天、明天,返回时间戳
function yesterday(){
	return days_ago(1)
}
function tomorrow(){
	return days_ago(-1)
}
function today(){
	return new Date()
}

///字符串格式化的日期,英文常用,如2021-01-01
function en_format(func){
	return func.format('yyyy-MM-dd')
}
function en_today(){
	return en_format(today())
}
function en_yesterday(){
	return en_format(days_ago(1))
}
function en_tomorrow(){
	return en_format(days_ago(-1))
}

function cn_format(func){
	return func.format('yyyy年MM月dd日')
}
//中文版今天,如2020年02月22日
function cn_today(){
	return cn_format(today())
}
//中文版昨天,如1949年10月01日
function cn_yesterday(){
	return cn_format(days_ago(1))
}
//中文版明天,如2035年09月09日
function cn_tomorrow(){
	return cn_format(days_ago(-1))
}

使用方法

cn_today()
'2021年11月10日'
cn_tomorrow()
'2021年11月11日'
cn_yesterday()
'2021年11月09日'
    
en_today()
'2021-11-10'
en_tomorrow()
'2021-11-11'
en_yesterday()
'2021-11-09'

7天前

en_format(days_ago(7))
'2021-11-03'

代码还能再精简,不过于我是已经够用了。

我是@爱玩的安哥,关注我获取更多有用知识

编程世界中,Python是一种广泛使用的高级编程语言,其简单易学的特点吸引了众多初学者。Python提供了许多内置模块和库,其中之一就是calendar模块。在 Python 中,我们已经学习了datetime,time等处理时间跟日期的模块。今天我们来学习下calendar 模块,calendar 为我们提供了处理日期、时间和日历的功能。它可以帮助我们生成日历,管理日期,并执行一些基本的日期计算。让我们一起深入了解 calendar 模块的基本用法和功能。

一. 导入 calendar 模块

import calendar


二. 基本用法

1.获取指定年份的日历

>>> import calendar
>>> year_calendar=calendar.TextCalendar(calendar.SUNDAY)
>>> year=2023
>>> print(year_calendar.formatyear(year))

这个例子展示了如何使用 TextCalendar 类来获取指定年份的日历,并使用 formatyear() 方法格式化输出。

2.获取指定月份的日历

>>> month_calendar=calendar.TextCalendar(calendar.SUNDAY)
>>> year=2023
>>> month=12
>>> print(month_calendar.formatmonth(year, month))

formatmonth() 方法用于获取指定年份和月份的日历。


3. 获取一个月的天数

calendar.monthrange(year, month) 是一个Python内置函数,用于返回指定年份和月份的日历信息。它返回一个包含两个元素的元组,第一个元素是指定月份的第一天是星期几(0表示星期一,6表示星期日),第二个元素是指定月份的总天数

>>> import calendar
>>> month=calendar.monthrange(2023, 12)[1]
>>> print(month)
31

获取指定月份第一天是星期几

>>> import calendar
>>> first=calendar.monthrange(2023, 12)[0]
>>> print(first)
4


4. 实际应用场景

calendar 模块在日程管理、日期操作、特定日期的计算等方面有着广泛的应用。比如在日历应用、计划任务、会议安排等领域。

5. 注意事项

calendar 模块提供了一些常用的方法来处理日期和日历,但并不包含所有的日期处理功能。

注意 firstweekday 参数,它指定了一周的起始日,默认为星期一。

总结

calendar 模块是 Python 中处理日历和日期的强大工具,提供了生成日历、管理日期和执行日期计算的功能。通过了解其基本用法和方法,你可以更好地处理日期和日历相关的操作。

更多用法参考官方文档

https://docs.python.org/3/library/calendar.html?highlight=calendar

划每一天教学设计

教学目标:

1.让学生了解日历的三种分类方式https://www.shimengyuan.com/nianji/719.html。

2.了解日历的作用。

3.通过手工制作挂历,学会发现美、发明美。

教学重难点:

重点:学会制作日历、知道日历的用处。

难点:制作日历的美观性和实用性的结合。

准备工作: 教师:卡纸、剪刀、彩色笔、胶水、各种手工制的挂历等。

学生:卡纸、剪刀、彩色笔、胶水等。

https://www.renjiaoshe.com/jiaocai/384.html

教学过程:

一、激趣导入

1. 出示龟兔赛跑动画短片,师生欣赏。

2. 思考:兔子为什么输给乌龟?指名学生回答。

3. 引入课题。

4. 板书课题,学生齐读课题。

二、新授

1. 指名回答:如何规划自己的一天。

2. 提问。平时用什么方式了解日期。

3. 出示日历图片,询问名称。

4. 介绍日历分类方式

(1)出示日历、月历、周历、年历图片,询问分类依据。

(2)出示横式日历和竖式日历,介绍日历第二种分类方式。

(3)以图片引导学生思考,介绍第三种分类方式。

5. 介绍日历的用处。

6. 出示优秀学生作品。

7. 出示要求,学生自读,小组合作制作贺卡。

8. 指名学生评价已完成的作品。

三、教师总结

1. 这一节课你学到了什么?

2. 小结:本课已接近尾声,通过这节课的学习,我们了解了日历的三种分类方式和日历的作用。课后希望同学们认真观察生活,养成发现美、发明美的习惯。

3. 布置作业

自己制作一张贺卡。


板书设计:


第13课 规划每一天


时间长短:日历 周历 月历 年历


排列方式:横式 竖式


图 案 :动物 植物 人物等


教学反思:

随着科技水平的提高,人们通过手机,电脑等现代工具获取日期信息,台历,挂历日渐退居二线。 本节课可利用制作挂历这一讨论活动引起学生对时间概念的思考,激起学生规划自己的时间的念头,并激起学生的创作欲望。 通过学生分享交流自己制作的挂历,教师补充和总结,让学生对挂历更有兴趣。然后,通过欣赏大量风格迥异的管理图片或实物,拓展学生的想象空间,使其设计思路更加开阔。 教学中,只需要提醒学生把握好挂历的结构特点,,而对表现形式不必进行过多限制,这让学生创作时才不感觉拘束。