您的位置:首页 > Web前端 > JavaScript

javascript日期处理-通过一个字符串的日期得到所在周、上周及下周的第一天和最后一天

2012-11-10 12:43 731 查看
项目需求:



<input type="hidden" id="today">

<script>
//把时间类型的数字转换为各种需要的字符串
function MM_dateFormat(rq, fenge) {
//格式化日期显示
//fenge   =   0     :2006-02-28   12:34:23
//fenge   =   1     :2006-02-28
//fenge   =   2     :2006年2月28日
//fenge   =   3     :2月28日
//fenge   =   4     :28/2
//fenge   =   5     :二○○六年二月二十八日
//fenge   =   6     :12:34:23
//fenge   =   7     :20060228
if((fenge == null) || (fenge == "")) fenge = 0;
if((rq == "") || (rq == null)) var tmpDate = new Date();
else var tmpDate = new Date(rq);
var result = "";
switch(fenge) {
case 1:
result += tmpDate.getFullYear() + "-";
if((tmpDate.getMonth() + 1) < 10) result += "0" + (tmpDate.getMonth() + 1) + "-";
else result += (tmpDate.getMonth() + 1) + "-";
if(tmpDate.getDate() < 10) result += "0" + tmpDate.getDate();
else result += tmpDate.getDate();
break;
case 2:
result = tmpDate.getFullYear() + "年" + (tmpDate.getMonth() + 1) + "月" + tmpDate.getDate() + "日";
break;
case 3:
result = (tmpDate.getMonth() + 1) + "月" + tmpDate.getDate() + "日";
break;
case 4:
result = tmpDate.getDate() + "/" + (tmpDate.getMonth() + 1);
break;
case 5:
var zhifu = "○一二三四五六七八九十";
var zhrq = "";
var nan = String(tmpDate.getFullYear());
for(iii = 0; iii < nan.length; iii++) {
zhrq += zhifu.substr(nan.substr(iii, 1), 1);
}
zhrq += "年";
var nan = String(tmpDate.getMonth() + 1);
if(nan.length == 2) {
if(nan.substr(0, 1) == "1") zhrq += "十";
else zhrq += zhifu.substr(nan.substr(0, 1), 1) + "十";
if(nan.substr(1, 1) == "0") zhrq += "月";
else zhrq += zhifu.substr(nan.substr(1, 1), 1) + "月"
} else {
zhrq += zhifu.substr(nan.substr(0, 1), 1) + "月";
}
var nan = String(tmpDate.getDate());
if(nan.length == 2) {
if(nan.substr(0, 1) == "1") zhrq += "十";
else zhrq += zhifu.substr(nan.substr(0, 1), 1) + "十";
if(nan.substr(1, 1) == "0") zhrq += "日";
else zhrq += zhifu.substr(nan.substr(1, 1), 1) + "日"
} else {
zhrq += zhifu.substr(nan.substr(0, 1), 1) + "日";
}
result = zhrq;
break;
case 6:
if(tmpDate.getHours() < 10) result += "0" + tmpDate.getHours();
else result += "" + tmpDate.getHours();
if(tmpDate.getMinutes() < 10) result += ":0" + tmpDate.getMinutes();
else result += ":" + tmpDate.getMinutes();
if(tmpDate.getSeconds() < 10) result += ":0" + tmpDate.getSeconds();
else result += ":" + tmpDate.getSeconds();
break;
case 7:
result += tmpDate.getFullYear();
if((tmpDate.getMonth() + 1) < 10) result += "0" + (tmpDate.getMonth() + 1);
else result += (tmpDate.getMonth() + 1);
if(tmpDate.getDate() < 10) result += "0" + tmpDate.getDate();
else result += tmpDate.getDate();
break;
default:
result += tmpDate.getFullYear() + "-";
if((tmpDate.getMonth() + 1) < 10) result += "0" + (tmpDate.getMonth() + 1) + "-";
else result += (tmpDate.getMonth() + 1) + "-";
if(tmpDate.getDate() < 10) result += "0" + tmpDate.getDate();
else result += tmpDate.getDate();
if(tmpDate.getHours() < 10) result += "   0" + tmpDate.getHours();
else result += "   " + tmpDate.getHours();
if(tmpDate.getMinutes() < 10) result += ":0" + tmpDate.getMinutes();
else result += ":" + tmpDate.getMinutes();
if(tmpDate.getSeconds() < 10) result += ":0" + tmpDate.getSeconds();
else result += ":" + tmpDate.getSeconds();
break;
}
return result;
}

//得到每周的第一天(周一)
function getFirstDateOfWeek(theDate){
var firstDateOfWeek;
theDate.setDate(theDate.getDate() + 1 - theDate.getDay());
firstDateOfWeek = theDate;
return firstDateOfWeek;
}
//得到每周的最后一天(周日)
function getLastDateOfWeek(theDate){
var lastDateOfWeek;
theDate.setDate(theDate.getDate() +7 - theDate.getDay());
lastDateOfWeek = theDate;
return lastDateOfWeek;
}

//得到上周的第一天(周一)
function getPreviousFirstDateOfWeek(theDate){
var firstDateOfWeek;
theDate.setDate(theDate.getDate() - 6 - theDate.getDay());
firstDateOfWeek = theDate;
return firstDateOfWeek;
}
//得到上周的最后一天(周日)
function getPreviousLastDateOfWeek(theDate){
var lastDateOfWeek;
theDate.setDate(theDate.getDate() +7 - theDate.getDay());
lastDateOfWeek = theDate;
return lastDateOfWeek;
}

//得到下周的第一天(周一)
function getNextFirstDateOfWeek(theDate){
var firstDateOfWeek;
theDate.setDate(theDate.getDate() + 8 - theDate.getDay());
firstDateOfWeek = theDate;
return firstDateOfWeek;
}
//得到下周的最后一天(周日)
function getNextLastDateOfWeek(theDate){
var lastDateOfWeek;
theDate.setDate(theDate.getDate() +7 - theDate.getDay());
lastDateOfWeek = theDate;
return lastDateOfWeek;
}
//将时间格式的字符串转为时间格式
function strToDate(dateStr){
var year = dateStr.substr(0,4);
var month = dateStr.substr(5,2);
var day = dateStr.substr(8,2);
var temDate = month+'/'+day+'/'+year;
return new Date(temDate);
}

$(document).ready(function(){

$("input[name=user_type]").click(function(){
var flag='';
$("input[name=user_type]").filter(':checked').each(function(){
flag+=$(this).val();
});
if(flag=='') return false;
var date=$("#today").val();
get(date)
});

//上周
$("#pre").click(function(){
var tD=strToDate($("#today").val());
var first = MM_dateFormat(getPreviousFirstDateOfWeek(tD).toString(),1);
var last= MM_dateFormat(getPreviousLastDateOfWeek(tD).toString(),1);
$("#today").val(first);
$("#curr").html(first+'-'+last);
get(first);
}).addClass("pointer");

//下周
$("#next").click(function(){
var tD=strToDate($("#today").val());

var first = MM_dateFormat(getNextFirstDateOfWeek(tD).toString(),1);
var last= MM_dateFormat(getNextLastDateOfWeek(tD).toString(),1);

$("#today").val(first);
$("#curr").html(first+'-'+last);
get(first);
}).addClass("pointer");

var theDate="<?php echo date('Y-m-d');?>";
$("#today").val(theDate);
var tD=strToDate(theDate);
var nWeekFirstDay = getFirstDateOfWeek(tD).toString();
var nWeekLastDay= getLastDateOfWeek(tD).toString();
var ch = MM_dateFormat(nWeekFirstDay,1);
var ch1 = MM_dateFormat(nWeekLastDay,1);

//alert("本周一的时间是:" + ch);
//alert("本周日的时间是:" + ch1);
$("#curr").html(ch+'-'+ch1);
get($("#today").val());
});


<table width="100%" border="0" style="background-color:#6a6a6a;color:#fff;vertical-align:middle;height:50px;">
<tr>
<td class="linkcss" style="text-align:left;"><span style="padding-left:20px;background:url(images/resultset_previous.png) no-repeat 0px 0px;" id="pre">上一周</span></td>
<td style="text-align:center;padding:5px 0px 5px 0px;font-size:30px;font-weight:bold;" id="curr"></td>
<td class="linkcss" style="text-align:right;"><span style="padding-right:20px;background:url(images/resultset_next.png) no-repeat 40px 0px;" id="next">下一周</span></td>
</tr>
</table>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐