前言:记录错误:[Vue warn]: Property or method “XXX” is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option.
原因是XXX在Vue中出现了,但没有被使用,需要检查下V-model绑定的值,删除或者在data中定义XXX就行。
- JS中的时间
(1)JS定义时间:
const 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)
(2)JS获取当前时间(昨天、今天、明天):
//昨天的时间
const day1 = new Date();
day1.setTime(day1.getTime()-24*60*60*1000);
const s1 = day1.getFullYear()+"-" + (day1.getMonth()+1) + "-" + day1.getDate();
//今天的时间
const day2 = new Date();
day2.setTime(day2.getTime());
const s2 = day2.getFullYear()+"-" + (day2.getMonth()+1) + "-" + day2.getDate();
//明天的时间
const day3 = new Date();
day3.setTime(day3.getTime()+24*60*60*1000);
const s3 = day3.getFullYear()+"-" + (day3.getMonth()+1) + "-" + day3.getDate();
//拼接时间
function show(){
var str = "" + s1 + "至" + s2;
return str;
}
//赋值doubleDate
$('#dateS').val(show());
(3)具体到时分秒的获取方法:
function writeCurrentDate() {
const now = new Date();
const year = now.getFullYear(); //得到年份
const month = now.getMonth();//得到月份
const date = now.getDate();//得到日期
const day = now.getDay();//得到周几
const hour = now.getHours();//得到小时
const minu = now.getMinutes();//得到分钟
const sec = now.getSeconds();//得到秒
const MS = now.getMilliseconds();//获取毫秒
const week;
month = month + 1;
if (month < 10) month = "0" + month;
if (date < 10) date = "0" + date;
if (hour < 10) hour = "0" + hour;
if (minu < 10) minu = "0" + minu;
if (sec < 10) sec = "0" + sec;
if (MS < 100)MS = "0" + MS;
const arr_week = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
week = arr_week[day];
const time = "";
time = year + "年" + month + "月" + date + "日" + " " + hour + ":" + minu + ":" + sec + " " + week;
//当前日期赋值给当前日期输入框中(jQuery easyUI)
$("#currentDate").html(time);
//设置得到当前日期的函数的执行间隔时间,每1000毫秒刷新一次。
const timer = setTimeout("writeCurrentDate()", 1000);
}
(4)JS中,中国标准时间转化为yyyy-MM-dd:
const d = new Date('Thu May 12 2016 08:00:00 GMT+0800 (中国标准时间)');
const datetime=d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
(5)“yyyy-MM-dd"格式比较日期大小:
function compareTime(start,end){
//通过replace方法将字符串转换成Date格式
const startTime= new Date(Date.parse(start.replace(/-/g, "/")));
const endTime= new Date(Date.parse(end.replace(/-/g, "/")));
if(startTime <= endTime){
return "结束时间大于开始时间"
}
(6)对年月日时分秒进行操作:
//昨天的时间
const today= new Date();
today.setDate(today.getDate() - 1);
const yestaday= today.format("yyyy-MM-dd");
- var/let/const的区别及使用场景
ES6 提出了两个新的声明变量的命令:let和const;建议使用的优先级:const > let > var :
第一、var定义的变量会预解析,类似于全局定义,当然伴随着更高的性能消耗。
第二,let声明的变量的特点,let不能定义已经定义过的变量(无论之前是用var定义的还是let或者const定义的);
let是块级作用域,函数内部使用let定义后,对函数外部无影响,简单说就是在一个{}里面生效
第三,const声明的变量的特点;const定义的变量通常不允许修改,但是,在数组里面,const的值是允许被修改的,这是因为const存储的是地址,值的内容可以变化,注意,对象也可以。
const声明常量的好处,一是阅读代码的人立刻会意识到不应该修改这个值,二是防止了无意间修改变量值所导致的错误,另外其实js编译器也对const进行了优化,可以提高代码的执行效率;
另外let声明的变量没有预编译和变量升级的问题,先声明再使用其实更为规范,而let本身是一个块级作用域,很多时候我们在写代码的时候都希望变量在某个代码块内生效,也更为方便。