关于日期的相关处理方法

时常会遇到一些关于日期的处理逻辑,以下就此做一些记录,方便以后用:

1. 判断是否为闰年

能被4整除但不能被100整除,或可以被400整除

function isLeapYear(year) {  
	return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);  
	}

某个月份是有29号,则为闰年

function isLeapYear(year) {
  // 如果year年2月没有29则自动进一变为3月1日
  var date = new Date(year, 1, 29)
  return date.getDate() === 29
}

2.获取某月天数

将时间设置为这个月的下一月的第一天,然后回拨一秒

function monthDay(year, month) {
  var date = new Date(year, month, 1, 0, 0, 0)
  var yesterDay = new Date(date - 1000)
  return yesterDay.getDate()
}
monthDay(2017, 2)  // 28
monthDay(2017, 12)  // 31

3.常用Date格式转换

转自https://blog.csdn.net/qq_39759115/article/details/78893853,内有其他转换记录

var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)         // 所以获取当前月份是myDate.getMonth()+1; 
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间
 

JS获取当前时间戳的方法-JavaScript 获取当前毫秒时间戳有以下三种方法:

var timestamp =Date.parse(new Date());    结果:1280977330000       //不推荐; 毫秒改成了000显示
 
var timestamp =(new Date()).valueOf();       结果:1280977330748       //推荐; 
 
var timestamp=new Date().getTime();         结果:1280977330748        //推荐; 

4.某一年一共多少周

经计算,只有当闰年并且当年的1月1日为周六时,是54周,其他情况都是53周

function getWeeks(year) {
        let days = this.isLeapYear(year) ? 366 : 365;
        //当前年1月1日是周几
        let weekIdx = (new Date(`${year}/01/01`)).getDay();  //0-6:周日-周六
        let initDays = weekIdx === 0 ? 0 : 7 - weekIdx;
        let firstIdx = weekIdx === 0 ? 0 : 1;//第一周不完整周数:0或1
        let secondIdx = parseInt((days - initDays) / 7);  //整周数 51-53
        let thirdIdx = (days - initDays) % 7 === 0 ? 0 : 1;//最后一周部完整周数:0或1
        return firstIdx + secondIdx + thirdIdx;
    }

5.某一年的第n周对应日期范围

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pandas 提供了很多用于日期处理方法,主要包括以下几类: 1. 创建日期:`pd.to_datetime()` 方法可以将字符串、整数、浮点数、datetime 对象等转换为 Pandas 的日期类型。 2. 日期属性:Pandas 的日期类型有很多属性可以获取,比如 `year`、`month`、`day`、`hour`、`minute`、`second` 等,可以使用 `dt` 属性访问,比如 `df['date'].dt.year`。 3. 日期运算:可以对 Pandas 的日期类型进行加、减、乘、除等运算,比如 `df['date'] + pd.Timedelta(days=1)`。 4. 日期格式化:可以使用 `strftime()` 方法日期类型转换为指定格式的字符串,比如 `df['date'].dt.strftime('%Y-%m-%d')`。 5. 日期差值:可以使用 `pd.Timedelta()` 方法计算两个日期之间的差值,比如 `pd.to_datetime('2022-01-01') - pd.to_datetime('2021-01-01')`。 下面是这些方法的一些示例: ```python import pandas as pd # 创建日期 date1 = pd.to_datetime('2021-01-01') date2 = pd.to_datetime('2021/01/01') date3 = pd.to_datetime('2021.01.01') date4 = pd.to_datetime('20210101') date5 = pd.Timestamp('2022-01-01') date6 = pd.Timestamp(2022, 1, 1) # 日期属性 print(date1.year) # 2021 print(date1.month) # 1 print(date1.day) # 1 print(date1.dayofyear) # 1 print(date1.weekday()) # 4 (星期五) print(date1.week) # 53 (2020 年的最后一周) # 日期运算 print(date1 + pd.Timedelta(days=1)) # 2021-01-02 00:00:00 print(date2 - pd.Timedelta(hours=2)) # 2020-12-31 22:00:00 # 日期格式化 print(date3.strftime('%Y-%m-%d')) # 2021-01-01 print(date4.strftime('%Y-%m-%d')) # 2021-01-01 # 日期差值 print(pd.Timedelta(days=365)) # 365 days 00:00:00 print(date5 - date6) # 0 days 00:00:00 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值