关于date:用js获取当前月份的天数

本文介绍一下如何应用js获取指定工夫对应月份的天数。获取以后月份天数我测试的工夫是2022-09-01: const date = new Date()const year = date.getFullYear()const month = date.getMonth()const days = new Date(year,month+1,0).getDate() // 30如果要获取2022-02的天数: const days = new Date(2022,2,0).getDate() // 28留神:new Date()接管的第三个参数是0,第二个参数是人类意识中的月份(因为date.getMonth()失去的值比设想中的小1) 补充月份是从0开始计算的: new Date('2022-01-01 13:55:33').getMonth()// 0获取指定日期 是 星期几: new Date('2022-08-28 13:55:33').getDay()// 0 星期日(老外喜爱把一周中的星期日当成第一天,也是从0开始) 利用场景我是在应用 echarts 时遇到了这个问题,须要按月份生成数据: 具备了下面的基础知识,就能够搞定这个问题了: function genDaysArr(timestamp) { const d = new Date(timestamp) const y = d.getFullYear() const m = d.getMonth()+1 const m_str = m>10?m:'0'+m // 获取指定月份天数 const days = new Date(y,m,0).getDate() const arr = [] for (let i = 1; i <= days; i ++) { const day_str = i>=10?i:'0'+i arr.push({day: `${y}-${m_str}-${day_str}`, count: 0}) } return arr}const a = genDaysArr(1647852283000)console.log(a)/**[ { day: '2022-03-01', count: 0 }, { day: '2022-03-02', count: 0 }, { day: '2022-03-03', count: 0 }, { day: '2022-03-04', count: 0 }, { day: '2022-03-05', count: 0 }, { day: '2022-03-06', count: 0 }, { day: '2022-03-07', count: 0 }, { day: '2022-03-08', count: 0 }, { day: '2022-03-09', count: 0 }, { day: '2022-03-10', count: 0 }, { day: '2022-03-11', count: 0 }, { day: '2022-03-12', count: 0 }, { day: '2022-03-13', count: 0 }, { day: '2022-03-14', count: 0 }, { day: '2022-03-15', count: 0 }, { day: '2022-03-16', count: 0 }, { day: '2022-03-17', count: 0 }, { day: '2022-03-18', count: 0 }, { day: '2022-03-19', count: 0 }, { day: '2022-03-20', count: 0 }, { day: '2022-03-21', count: 0 }, { day: '2022-03-22', count: 0 }, { day: '2022-03-23', count: 0 }, { day: '2022-03-24', count: 0 }, { day: '2022-03-25', count: 0 }, { day: '2022-03-26', count: 0 }, { day: '2022-03-27', count: 0 }, { day: '2022-03-28', count: 0 }, { day: '2022-03-29', count: 0 }, { day: '2022-03-30', count: 0 }, { day: '2022-03-31', count: 0 }] */只有传入对应月份的工夫戳就能够生成这个月的根底数据了。 ...

September 1, 2022 · 2 min · jiezi

关于date:不同数据库模式下DATE类型的行为解析

摘要:本文章次要介绍了GaussDB(DWS)数据类型中的DATE类型在不同数据库模式下且在不同利用场景下的行为表现及比照。本文分享自华为云社区《GaussDB(DWS)数据类型之DATE类型》,原文作者:小仲。 GaussDB(DWS)中有三种模式,别离是Oracle模式,TD模式和MySQL模式。不同的类型在不同的模式下,也有不同的行为表现。接下来便对GaussDB(DWS)中的日期DATE类型进行具体介绍。 DATE类型的取值范畴:GaussDB(DWS)在存储DATE类型时,不反对年月日全副为零或局部为零的场景,且取值范畴在三种模式下是不同的: 在Oracle模式下,DATE类型的取值范畴是公元前4713年1月1日到公元294277年1月1日。在MySQL模式和TD模式中,DATE类型的取值范畴是公元前4713年到公元5874897年。 用例阐明:1. 不同模式下DATE类型的行为Oracle模式a. DATE类型的体现 GaussDB(DWS)中DATE类型存储时不带时分秒,因为在Oracle模式下的DATE类型须要带有时分秒,使得GaussDB(DWS)在Oracle模式下存在带时分秒的和不带时分秒的两种DATE类型,所以为了容易辨别,在显示时不带时分秒的DATE类型用列名date示意;带时分秒的DATE类型用同样带时分秒的TIMESTAMP类型的列名timestamp示意。 postgres=# select date '4713-01-01 BC'; timestamp ------------------------ 4713-01-01 00:00:00 BC(1 row)postgres=# select date '294277-01-01'; timestamp ----------------------- 294277-01-01 00:00:00(1 row)b. Oracle模式下失去只含有年月日的DATE类型的办法 如果想要在Oracle模式下将日期转成只有年月日的DATE类型,有办法能够实现么?事实上也是有的。GaussDB(DWS)提供了两种形式,一种是通过在Oracle模式下应用date函数:date函数的参数至多须要蕴含年月日,并将日期中的年月日提取并输入;另一种则是通过cast函数进行转换,但转换时应将date加上双引号,否则转换后的数据还是会含有时分秒局部。 postgres=# select date('2008-05-24 10:40:21'); date ------------ 2008-05-24(1 row)postgres=# select cast('2008-05-24 10:40:21.100050' as "date"); date ------------ 2008-05-24(1 row)postgres=# select cast('2008-05-24 10:40:21.100050' as date); timestamp --------------------- 2008-05-24 10:40:21(1 row)c. DATE类型操作符 MySQL模式和TD模式: DATE类型只有年月日。a. DATE类型的体现 MySQL模式与TD模式下DATE类型无差别。 mysql_db=# select date '5874897-01-01'; date --------------- 5874897-01-01(1 row)td_db=# select date '5874897-01-01'; date --------------- 5874897-01-01(1 row)b. MySQL模式与TD模式下失去只含有年月日的DATE类型的办法 ...

May 26, 2021 · 1 min · jiezi