js 怎样获取周和日期的时间

JavaScript07

js 怎样获取周和日期的时间,第1张

<script language="javascript">

//这个方法将取得某年(year)第几周(weeks)的星期几(weekDay)的日期

function getXDate(year,weeks,weekDay){

//用指定的年构造一个日期对象,并将日期设置成这个年的1月1日

//因为计算机中的月份是从0开始的,所以有如下的构造方法

var date = new Date(year,"0","1")

//取得这个日期对象 date 的长整形时间 time

var time = date.getTime()

//将这个长整形时间加上第N周的时间偏移

//因为第一周就是当前周,所以有:weeks-1,以此类推

//7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)

time+=(weeks-1)*7*24*3600000

//为日期对象 date 重新设置成时间 time

date.setTime(time)

return getNextDate(date,weekDay)

}

//这个方法将取得 某日期(nowDate) 所在周的星期几(weekDay)的日期

function getNextDate(nowDate,weekDay){

//0是星期日,1是星期一,...

weekDay%=7

var day = nowDate.getDay()

var time = nowDate.getTime()

var sub = weekDay-day

time+=sub*24*3600000

nowDate.setTime(time)

return nowDate

}

//2008第1周的星期5

alert("2008第1周的星期5是:"+getXDate(2008,1,5))

//2008第51的星期5

alert("2008第51周的星期5是:"+getXDate(2008,51,5))

</script>

==========将以下内容保存成 .html格式的文件===========

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf8">

<script language="javascript">

//这个方法将取得某年(year)第几周(weeks)的星期几(weekDay)的日期

function getXDate(year,weeks,weekDay){

//用指定的年构造一个日期对象,并将日期设置成这个年的1月1日

//因为计算机中的月份是从0开始的,所以有如下的构造方法

var date = new Date(year,"0","1")

//取得这个日期对象 date 的长整形时间 time

var time = date.getTime()

//将这个长整形时间加上第N周的时间偏移

//因为第一周就是当前周,所以有:weeks-1,以此类推

//7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)

time+=(weeks-1)*7*24*3600000

//为日期对象 date 重新设置成时间 time

date.setTime(time)

return getNextDate(date,weekDay)

}

//这个方法将取得 某日期(nowDate) 所在周的星期几(weekDay)的日期

function getNextDate(nowDate,weekDay){

//0是星期日,1是星期一,...

weekDay%=7

var day = nowDate.getDay()

var time = nowDate.getTime()

var sub = weekDay-day

time+=sub*24*3600000

nowDate.setTime(time)

return nowDate

}

//2008第1周的星期5

//alert("2008第1周的星期5是:"+getXDate(2008,1,5))

//2008第51的星期5

//alert("2008第51周的星期5是:"+getXDate(2008,51,5))

function alertx(){

var y = document.getElementById('y').value

var w = document.getElementById('w').value

var d = document.getElementById('d').value

var date = getXDate(y,w,d)

alert(y+"年的第"+w+"周的星期"+d+"的日期是:\n"+date.toLocaleString())

}

</script>

</head>

<body><center>

<h2>输入的年,周,星期求日期</h2>

<input type="text" name="y" id="y" size="6" value="2008"/>年的第

<input type="text" name="w" id="w" size="4" value="1"/>周 的星期

<input type="text" name="d" id="d" size="3" value="6"/>是什么日子呢?

<button onclick="alertx()">试试运气</button>

</body>

前言:需求里面有,做了就记录一下

第一种:获取当前月 当前周 的第一天 时分秒都为0,最后一天时分秒为23:59:59

ps:如果想获得指定日期的当前周,new Date('2020-1-2') 传参就可以了

//获取当前周

getTime(){

var date = new Date()

// 本周一的日期

date.setDate(date.getDate() - date.getDay() + 1)

var begin = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " 00:00:00"

// 本周日的日期

date.setDate(date.getDate() + 6)

var end = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " 23:59:59"

let timeInfo={

begin:begin,

end:end

}

return timeInfo

}

//获取当前月

getMtime(){

var data=new Date()

data.setDate(1)

data.setHours(0)

data.setSeconds(0)

data.setMinutes(0)

var start = data.getTime()

var currentMonth = data.getMonth()

var nextMonth = ++currentMonth

var nextMonthFirstDay = new Date(

data.getFullYear(),

nextMonth,

1

)

var end = nextMonthFirstDay-1

let timeInfo={

begin: this.timestampToTime(start),//这里调用时间戳转年月日时分秒方法

end: this.timestampToTime(end)

}

return timeInfo

}

//时间戳转年月日时分秒方法

timestampToTime (cjsj) {

var date = new Date(cjsj) //时间戳为10位需*1000,时间戳为13位的话不需乘1000

var Y = date.getFullYear() + '-'

var M = (date.getMonth()+1 <10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'

var D = (date.getDate() <10 ? '0'+date.getDate() : date.getDate()) + ' '

var h = (date.getHours() <10 ? '0'+date.getHours() : date.getHours()) + ':'

var m = (date.getMinutes() <10 ? '0'+date.getMinutes() : date.getMinutes())+ ':'

var s = (date.getSeconds() <10 ? '0'+date.getSeconds() : date.getSeconds())

return Y+M+D+h+m+s

}