代码中的时间处理

我们常用的时间格式其实都是字符串格式了,但是在代码中为了区分时间和普通字符串,需要将时间转换为Date对象,在js中对应Date对象,在C#中对应DateTime对象,在C++中很多需要自己写

js

1、时间的格式

js中常见时间表示方法有:

  指定的时间据 1970/1/1 午夜(GMT 时间)之间的毫秒数;

  字符串表示,如20170913,2017-09-13,2017/09/13,Wed Sep 13 2017 08:00:00 GMT+0800 (中国标准时间)

  Date对象,将日期转化为js中的Date对象

       倒计时,

       精确到年或月的日期筛选,因为精确到年和月,没有日,所以不能成为日期格式。

常用js方法:

  Date.parse(字符串时间格式)  将时间转换为指定的时间据 1970/1/1 午夜(GMT 时间)之间的毫秒数;指定时间格式可以是大多数字符串时间格式(yyyyMMdd格式不可以)

  new Date(字符串时间格式)    将时间转换Date对象,Date对象提供很多常用时间方法,如时间转各种字符串,参考2。

  Date对象常用方法见http://www.w3school.com.cn/jsref/jsref_obj_date.asp

2、今天/现在

Date.now()                                                     今天的毫秒数格式 如Date.parse('2017-09-13') 的结果是1505260800000

new Date()                                   今天的Date类型,提供常用方法。

new Date().toLocaleDateString()  今天本地时间字符串格式,如"2017/9/13"

new Date().toLocaleTimeString()  现在的本地时间部分字符串格式,如"上午10:51:47"

new Date().toLocaleString()          现在的本地时间字符串格式,如"上午10:51:472017/9/13 上午10:52:22"

new Date().toString()                    现在的字符串格式,如"Wed Sep 13 2017 10:53:12 GMT+0800 (中国标准时间)"

3、时间比较

时间有3种格式,采用1的方法将两个时间转化为相同格式再比较。

4、IE浏览器下js中时间兼容性

IE认可的时间 格式是yyyy/MM/dd HH:mm:ss。不认可yyyy-MM-dd 和yyyyMMdd。

如在进行字符串转Date对象时,new Date(“20170929”) ,new Date(“2017-09-29 12:00”)都存在兼容性问题,需要使用 new Date(“2017/09/29 12:00”)

SQLServer

--目标时间:20170929
--目标时间的当月第一天
select dateadd(d,1-day('20170929'),'20170929') 
--目标时间的当月最后一天
select dateadd(d,-day('20170929'),dateadd(m,1,'20170929'))
--目标时间是当年的第几周
select datepart(wk,'20170929')

--目标时间周周一
SET DATEFIRST 1
select DATEADD(day,1-DATEPART(weekday,'19000107'),'19000107')

--目标时间周周末
SET DATEFIRST 1
select DATEADD(day,7-DATEPART(weekday,'19000101'),'19000101')

--获取连续时间列 
Declare @mindate datetime 
Declare @maxdate datetime 
set @mindate = '2010-01-01' 
set @maxdate = '2010-02-01' 
;with temptab(date) as (
 select @mindate 
union all 
select dateadd(d,1,temptab.date) as date
 from temptab 
where dateadd(d,1,temptab.date)<=@maxdate ) 

select * from temptab

 

posted @ 2017-09-13 11:04  胡正  阅读(594)  评论(0编辑  收藏  举报