方法一:
const getDate = ()=>{
var d=new Date()
var year=d.getFullYear()
var month=change(d.getMonth()+1)
var day=change(d.getDate())
var hour=change(d.getHours())
var minute=change(d.getMinutes())
var second=change(d.getSeconds())
function change(t){
if(t<10){
return "0"+t
}else{
return t
}
}
return year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second
}
方法二:
使用moment时间插件
1、引入方式:<script src="moment.js"></script>
或者使用包管理器npm,引用直接使用命令:npm install moment
2、引入之后,直接使用monent().format('yyyy-MM-dd HH:mm:ss')
直接看实例吧。var now = new Date()
alert(+now == now.getTime())
1.Date 对象用于处理日期和时间。
创建 Date 对象的语法:
var myDate=new Date()
Date 对象会自动把当前日期和时间保存为其初始值。
2.参数形式有以下5种:
new Date("month dd,yyyy hh:mm:ss")
new Date("month dd,yyyy")
new Date(yyyy,mth,dd,hh,mm,ss)
new Date(yyyy,mth,dd)
new Date(ms)
最后一种形式,参数表示需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。
3.各种函数的含义如下:
month:用英文表示月份名称,从January到December
mth:用整数表示月份,从(1月)到11(12月)
dd:表示一个月中的第几天,从1到31
yyyy:四位数表示的年份
hh:小时数,从0(午夜)到23(晚11点)
mm:分钟数,从0到59的整数
ss:秒数,从0到59的整数
ms:毫秒数,为大于等于0的整数
如:
new Date("January 12,2006 22:19:35")
new Date("January 12,2006")
new Date(2006,0,12,22,19,35)
new Date(2006,0,12)
new Date(1137075575000)
Date() 返回当日的日期和时间。
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。
getYear() 请使用 getFullYear() 方法代替。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setFullYear() 设置 Date 对象中的年份(四位数字)。
setYear() 请使用 setFullYear() 方法代替。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
setTime() 以毫秒设置 Date 对象。
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource() 返回该对象的源代码。
toString() 把 Date 对象转换为字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toGMTString() 请使用 toUTCString() 方法代替。 1 3
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC() 根据世界时返回 1997 年 1 月 1 日 到指定日期的毫秒数。
valueOf() 返回 Date 对象的原始值。
var objDate=new Date([arguments list])
了解了一下Date()函数在作为构造函数时的解析日期字符串参数的规则,感觉最佳答案个人觉得并不是很全面,所以这里写一下自己的看法。Date()函数像题主的这种用法,即作为构造函数使用,当传入日期字符串的时候,内部其实会调用Date.parse()方法解析日期字符串,根据MDN文档的说法,该日期字符串的要求是“符合 RFC2822 或 ISO 8601 日期格式的字符串(其他格式也许也支持,但结果可能与预期不符)”。像'2018-09-13'这种就是ISO 8601的日期格式,文档中有说明对于ISO 8601日期格式的处理说明:“如果参数字符串只包含日期格式,那么将会使用UTC时区来解析该参数。而如果是ISO 8601 格式中规定的时间加日期的格式,则将会被作为本地时区处理”。
这句话简单的理解就是如果你传的字符串参数不包含时间,那么则表示的是中时区(零时区,本初子午线)的0点0分0秒,转换成北京时间(东八区)自然就得加8个小时咯,所以new Date('2018-09-13')返回的是“Thu Sep 13 2018 08:00:00 GMT+0800 (中国标准时间)”。根据上面的那句话,new Date('2018-09-13T08:00:00')应该与'2018-09-13'返回的是一样的结果,测试确实如此,因为加上时间的话,就会作为本地时区处理。
而“2018/09/13”这种不包含时间的日期格式(并不属于ISO 8601格式,属于什么标准自行了解,我也不懂),显然是直接当做本地时间处理了。你只需要记住,当使用ISO 860即'2018-09-13'这种格式的日期字符串的时候,记得要把时间补全,即便是零,例如new Date('2018-09-13T00:00:00')。