5.qml-ECMAScript(Date对象)

1.Date对象介绍
ECMAScript提供了Date类型来处理时间和日期,用来呈现时间中的某个时刻.
它的实例化构造方法如下所示:

new Date();
new Date(value); // value是一个整数值表示自1970年1月1日00:00:00以来的毫秒数
new Date(dateString);
new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds);
// year和monthIndex参数必填, day默认值为1,其它参数默认值为0
// monthIndex是从0开始的,意味着"1"表示2月的意思
// 如果数值大于时间范围,则会进行调整,比如: Date(2013, 12, 1, 0, 10)等于new Date(2014, 1, 1, 0, 10)
// 如果我们实例化时,不指定时间,则默认以当前时间点来初始化它.

实例如下所示:

var date1 = new Date;
console.log(date1)    // 打印当前时间
// 也可以new Date("2000/01/01 00:00:00");
var date2 = new Date('1995-12-17T03:24:00'); // 由于12是13月的意思,已经超过月份范围,所以实际为1996-1-17 03:24:00
console.log(date2)

var date3 = new Date(2013, 12, 1, 0, 10);
console.log(date3)


2.获取两个Date之间的时间差
两个Date相减,会返回一个以毫秒为单位的value.如果以一个月为30天为准的话,所以可以这样计算时间差:

var date1 = new Date(2010, 5, 1, 1, 10);
var date2 = new Date(2011, 4, 13, 3, 30);

var total = date2-date1;

var year = Math.floor(total/(1000*60*60*24*360));
var month = Math.floor(total%(1000*60*60*24*360)/(1000*60*60*24*30));
var day = Math.floor(total%(1000*60*60*24*30)/(1000*60*60*24));
var hour = Math.floor(total%(1000*60*60*24)/(1000*60*60));
var min = Math.floor(total%(1000*60*60)/(1000*60));
var second = Math.floor(total%(1000*60)/(1000));

console.log(year,month,day,hour,min,second);  // 打印两个时间差


3.Date提供的静态方法

  • Date.now() : 返回自 1970-1-1 00:00:00 UTC(世界标准时间)至今所经过的毫秒数

4.Date提供的实例get方法 

  • date.getFullYear() : 根据本地时间返回指定日期对象的年份(四位数年份时返回四位数字)。
  • date.getMonth() : 根据本地时间返回指定日期对象的月份(0-11)。
  • date.getDate() : 根据本地时间返回指定日期对象的月份中的第几天(1-31)。
  • date.getDay() : 根据本地时间返回指定日期对象的星期中的第几天(0-6)。
  • date.getHours() :根据本地时间返回指定日期对象的小时(0-23)。
  • date.getMinutes() :根据本地时间返回指定日期对象的分钟(0-59)。
  • date.getSeconds() : 根据本地时间返回指定日期对象的秒数(0-59)。
  • date.getMilliseconds() : 根据本地时间返回指定日期对象的毫秒(0-999)。
  • date.getTime() : 返回从1970-1-1 00:00:00 UTC(协调世界时)到该日期经过的毫秒数,对于1970-1-1 00:00:00 UTC之前的时间返回负值。
  • date.getTimezoneOffset() : 返回当前时区的时区偏移,单位为分钟
  • date.getUTCDate() : 根据世界时返回特定日期对象一个月的第几天(1-31).
  • date.getUTCDay() : 根据世界时返回特定日期对象一个星期的第几天(0-6).
  • date.getUTCFullYear() :根据世界时返回特定日期对象所在的年份(4位数).
  • date.getUTCHours() :根据世界时返回特定日期对象当前的小时(0-23).
  • date.getUTCMilliseconds() :根据世界时返回特定日期对象的毫秒数(0-999).
  • date.getUTCMinutes() :根据世界时返回特定日期对象的分钟数(0-59).
  • date.getUTCMonth() :根据世界时返回特定日期对象的月份(0-11).
  • date.getUTCSeconds() :根据世界时返回特定日期对象的秒数(0-59).

示例如下所示:

var date = new Date(2014, 11, 1, 12, 10);
console.log(date.getFullYear()); // 打印 2014
console.log(date.getMonth());    // 打印11(12月份)
console.log(date.getDate());     // 打印1(1号)


5.Date提供的实例set方法

  • date.setFullYear() : 根据本地时间为指定日期对象设置完整年份。
  • date.setMonth() : 根据本地时间为指定日期对象设置月份。
  • date.setHours() : 根据本地时间为指定日期对象设置小时数。
  • date.setDate() : 根据本地时间为指定的日期对象设置月份中的第几天。
  • date.setMinutes() : 根据本地时间为指定日期对象设置分钟数。
  • date.setSeconds() : 根据本地时间为指定日期对象设置秒数。
  • date.setMilliseconds() : 根据本地时间为指定日期对象设置毫秒数。
  • date.setTime() : 通过指定从 1970-1-1 00:00:00 UTC 开始经过的毫秒数来设置日期对象的时间,对于早于 1970-1-1 00:00:00 UTC的时间可使用负值。
  • date.setUTCDate() : 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
  • date.setUTCFullYear() : 根据世界时设置 Date 对象中的年份(四位数字)。
  • date.setUTCHours() : 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
  • date.setUTCMilliseconds() : 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
  • date.setUTCMinutes() : 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
  • date.setUTCMonth() : 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
  • date.setUTCSeconds() : 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。

示例如下所示:

var date = new Date(2014, 11, 1, 12, 10);
date.setFullYear(2016);
date.setDate(12);
console.log(date.getFullYear());  // 打印 2016
console.log(date.getMonth());     // 打印11(12月份)
console.log(date.getDate());      // 打印12(12号)


6.QML扩展的Date方法
如下图所示,QML对ECMAScript的Date对象进行了扩展,添加了下面几个方法:

其中local表示不同的国家区域,比如:中国(zh-CN)、美国(en-US)、日本(ja-JP)、德国(de-DE).
dateString表示的是时间字符串,format表示的是时间格式.
比如:

var date = new Date();
console.log(date.toLocaleString(Qt.locale("de-DE")));

打印指定格式年月日时分秒,则使用:

console.log( new Date().toLocaleString(Qt.locale(), "ddd yyyy-MM-dd hh:mm:ss"));

 如果只想打印时间则使用toLocaleTimeString()、如果只打印日期则使用toLocaleDateString


人间有真情,人间有真爱。

如果您喜欢这里,感觉对你有帮助,并且有多余的软妹币的话,不妨投个食吧,赞赏的时候,留下美句和你的博客地址哦~   戳这里看谁投食了


【推广】 免费学中医,健康全家人
原文地址:https://www.cnblogs.com/lifexy/p/14558904.html