JS、C#及SQL中的DateTime

一:SQL中的DataTime

1.       between and 相当于>= and <=

2.       常用的将DataTime查询成字符串的方法

Select CONVERT(varchar(100), GETDATE(), 23): // yyyy-MM-dd

Select CONVERT(varchar(100), GETDATE(), 20): // yyyy-MM-dd HH:mm:ss

Select CONVERT(varchar(100), GETDATE(), 111): //yyyy/MM/dd

Select CONVERT(varchar(100), GETDATE(), 112): //yyyyMMdd

二:JS中的Datatime

1.        生成时间:var a=new Date(yyyy,MM,dd,HH,mm,ss)

返回值:周 M+1 d HH:mm:ss UTC+0800 yyyy

(若d 超过月份M+1的天数,则返回M+2月 日 则为d减去M+1月份的天数)

New Date(n) ;

n是距离1970年1月1日的毫秒数

返回值是 周 月 1 HH:mm:ss UTC+0800 yyyy

2.       获取时间:var myDate = new Date();

var year=myDate.getYear(); //获取当前年份(2位)

var year1=myDate.getFullYear(); //获取完整的年份(4位,1970)

var moonth=myDate.getMonth(); //获取当前月份(0-11,0代表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(); //获取当前日期  yyyy年M月d日

myDate.toLocaleTimeString(); //获取当前时间HH:mm:ss

myDate.toLocaleString( ); //获取日期与时间yyyy年M月d日 HH:mm:ss

3.       Date.parse方法支持的参数类型以及返回的结果类型

(Date对象的一个静态方法,其作用是“解析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间所间隔的毫秒数”。)

a.Date.parse(“yyyy-MM-dd”)
// On IE and Mozilla: NaN
  
b.Date.parse( "MM-dd-yyyy" )
// On IE: 距离1970年1月1日的毫秒数
// On Mozilla: NaN"  
  
c.Date.parse( "MM/dd/yyyy" )
Date.parse( "yyyy/MM/dd" ) 
// On IE and Mozilla: 距离1970年1月1日的毫秒数

三:C#中DateTime

1.       本周

(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止 ) 
DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();

DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();

2.       本月

(,本月的第一天肯定是1号,最后一天就是下个月一号再减一天)

DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //第一天

DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天

//巧用C#里ToString的字符格式化更简便

DateTime.Now.ToString("yyyy-MM-01");

DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();

3.       本季度

(很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月 )

//首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了

DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");

//同理,本季度的最后一天就是下季度的第一天减一

DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();

4.       本年度

DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();

DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();

5.       各种格式

a. 用DateTime类的.toString(""yyyy-MM-dd""),

b. 用String类转换日期显示格式: String.Format("yyyy-MM-dd",yourDateTime);

但是,如果你的电脑里的"区域和语言设置"选项选中的是简体中文,那么你用toString(""yyyy/MM/dd"")来格式化2008-09-09时,会发现它根本不起作用!

这到底是为什么呢?原因就是在当前Culture(zh-CN)下,DateTime的DateSeparator是-而不是/. 这时我们在方法tostring里多加一个参数:System.Globalization.DateTimeFormatInfo.InvariantInfo,系统就会完全按照自定义格式来输出了!

c. DateTime dt = new DateTime(yyyy, M, d, H,m, s);//yyyy-MM-dd HH:mm:ss

String.Format("{0:y yy yyy yyyy}", dt);  // "8 08 008 2008"   year
String.Format("{0:M MM MMM MMMM}", dt);  // "3 03 Mar March"  month
String.Format("{0:d dd ddd dddd}", dt);  // "9 09 Sun Sunday" day
String.Format("{0:h hh H HH}",     dt);  // "4 04 16 16"      hour 12/24
String.Format("{0:m mm}",          dt);  // "5 05"            minute
String.Format("{0:s ss}",          dt);  // "7 07"            second
String.Format("{0:f ff fff ffff}", dt);  // "1 12 123 1230"   sec.fraction
String.Format("{0:F FF FFF FFFF}", dt);  // "1 12 123 123"    without zeroes
String.Format("{0:t tt}",          dt);  // "P PM"            A.M. or P.M.
String.Format("{0:z zz zzz}",      dt);  // "-6 -06 -06:00"   time zone

6.

注:

GMT 是“Greenwich Mean Time”的缩写,中文叫“格林威治标准时间”,是英国的标准时间,也是世界各地时间的参考标准。中英两国的标准时差为8个小时,即英国的当地时间比中国的北京时间晚8小时。

  BST 是“British Summer Time”的缩写,即“英国夏时制”比GMT快一小时,每年从三月底开始,到十月底结束。夏时制期间,中英两国的时差为7小时。

上一篇:微信小程序,前端大梦想(六)


下一篇:WCF初探-22:WCF中使用Message类(上)