可以使用substring 方法提取字符串中介于两个指定下标之间的字符。
方法形式:substring(start,end)
举例:截取年月日部分的日期,代码如下:
var dateTime = new Date()
var hour = dateTime.getHours()
var min = dateTime.getMinutes()
var sec = dateTime.getSeconds()
var yy = dateTime.getFullYear()
var dd = dateTime.getDate()
var mm = dateTime.getMonth()
var time= yy + "-" + mm+1 + "-" + dd + " " + hour + ":" + min + ":" + sec
console.log(time.substring(0,10));
截取结果如下图所示:
要根据你截取的日期的格式来决定代码
//假如是2017-10-22var dateStr = '2017-10-22'
var reg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/
console.log(dateStr.match(reg))
console.log(RegExp.$1)
console.log(RegExp.$2)
console.log(RegExp.$3)
substring这个函数就是截取用的,但是不适合你这个业务,如果月、日是小于10,也就是单位数,substring截取容易出错;你这个截取有几种办法:
1,利用split把字符串转为数组的方式
var arr="2018/6/21 10:05:30".split(" ")//以空格分割为数组var date=arr[0]//arr内容是["2018/6/21","10:05:30"]所以第1个元素就是2018/6/21
//其实这个一行代码就可以了,不过我为了解说,所以分步骤去写的,一行代码写法如下:
var date="2018/6/21 10:05:30".split(" ")[0]
2、先把字符串转为Date,然后获取年月日拼接,这个方法代码有点冗余。
var date=new Date("2018/6/21 10:05:30")var year=date.getFullYear()
var month=date.getMonth()+1//getMonth()获取的月份从0开始,0~11,所以要加一
var day=date.getDate()
//后面自己按照自己想要的格式凭借