js获取当前日期第几周
其实我是来混经验的
////////////////////////////////////////////////////////////////////////////////////////////////////
//获取当前日期在当前年第几周函数封装,例如2014-01-10 是当前年的第2周
////////////////////////////////////////////////////////////////////////////////////////////////////
function theWeek() {
var totalDays = 0;
now = new Date();
years = nowgetYear()
if (years < 1000)
years += 1900
var days = new Array(12);
days[0] = 31;
days[2] = 31;
days[3] = 30;
days[4] = 31;
days[5] = 30;
days[6] = 31;
days[7] = 31;
days[8] = 30;
days[9] = 31;
days[10] = 30;
days[11] = 31;
//判断是否为闰年,针对2月的天数进行计算
if (Mathround(nowgetYear() / 4) == nowgetYear() / 4) {
days[1] = 29
} else {
days[1] = 28
}
if (nowgetMonth() == 0) {
totalDays = totalDays + nowgetDate();
} else {
var curMonth = nowgetMonth();
for (var count = 1; count <= curMonth; count++) {
totalDays = totalDays + days[count - 1];
}
totalDays = totalDays + nowgetDate();
}
//得到第几周
var week = Mathround(totalDays / 7);
return week;
}
下面是获取当月的第几周
<script language="javascript">var getMonthWeek = function (a, b, c) { / a = d = 当前日期 b = 6 - w = 当前周的还有几天过完(不算今天) a + b 的和在除以7 就是当天是当前月份的第几周 / var date = new Date(a, parseInt(b) - 1, c), w = dategetDay(), d = dategetDate(); return Mathceil( (d + 6 - w) / 7 ); };
var getYearWeek = function (a, b, c) { / date1是当前日期 date2是当年第一天 d是当前日期是今年第多少天 用d + 当前年的第一天的周差距的和在除以7就是本年第几周 / var date1 = new Date(a, parseInt(b) - 1, c), date2 = new Date(a, 0, 1), d = Mathround((date1valueOf() - date2valueOf()) / 86400000); return Mathceil( (d + ((date2getDay() + 1) - 1)) / 7 ); }; today=new Date();//获取当前时间var y = todaygetYear();var m = todaygetMonth()+1;var d = todaygetDate();documentwrite( "今天是",m,"月的第 ", getMonthWeek(y, m, d), " 周" ); </script>
网页前端是无法获取到服务器时间的,只有通过后台取值然后进行传递。 使用Ajax每秒获取服务器的时间并显示出来,但是服务器网络延迟较高,这样误差较大。
示例采用Head的方法处理,第一次页面加载时从服务器端获得时间,以这个时间为基准,客户端再用js每秒累加。
完整代理示例:
<html><head>
<title>html网页获取服务器的时间</title>
<script language="JavaScript" type="text/javascript">
<!--程序执行需要耗费时间,误差在2秒以下-->
var xmlHttp = false;
<!--获取服务器时间-->
try {
xmlHttp = new ActiveXObject("Msxml2XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("MicrosoftXMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
xmlHttpopen("GET", "
, false);
xmlHttpsetRequestHeader("Range", "bytes=-1");
xmlHttpsend(null);
severtime=new Date(xmlHttpgetResponseHeader("Date"));
<!--获取服务器日期-->
var year=severtimegetFullYear();
var month=severtimegetMonth()+1;
var date=severtimegetDate();
<!--获取服务器时间-->
var hour=severtimegetHours();
var minu=severtimegetMinutes();
var seco=severtimegetSeconds();
<!--格式化输出服务器时间-->
function getSeverTime(){
seco++;
if(seco==60){
minu+=1;
seco=0;
}
if(minu==60){
hour+=1;
minu=0;
}
if(hour==24){
date+=1;
hour=0;
}
<!--日期处理-->
if(month==1||month==3||month==5||month==7
||month==8||month==10||month==12)
{
if(date==32)
{
date=1;
month+=1;
}
}else if(month==4||month==6||month==9||month==11){
if(date==31){
date=1;
month+=1;
}
}else if(month==2){
if(year%4==0&&year%100!=0){<!--闰年处理-->
if(date==29){
date=1;
month+=1;
}
}else{
if(date==28){
date=1;
month+=1;
}
}
}
if(month==13){
year+=1;
month=1;
}
sseco=addZero(seco);
sminu=addZero(minu);
shour=addZero(hour);
sdate=addZero(date);
smonth=addZero(month);
syear=year;
innerdata="当前服务器时间:";
documentgetElementById("servertime")innerHTML=innerdata+syear+"-"+smonth+"-"+sdate+" "+shour+":"+sminu+":"+sseco;
setTimeout("getSeverTime()",1000);
setTimeout("getClientTime()",100);
}
function addZero(num) {
num=Mathfloor(num);
return ((num <= 9) ("0" + num) : num);
}
</script>
</head>
<body onLoad="getSeverTime();">
<p id="servertime"></p>
<p id="clienttime"></p>
<p id="xctime"></p>
</body>
</html>
扩展网页前端获取当前时间,调用date()函数即可。
示例代码:
<span id="cg"></span><script>setInterval("cginnerHTML=new Date()toLocaleString()",1000);</script>
不一样。
不同的设备,本地的系统时间是不一样的,假如你电脑设定的时间是9:00那么js获取的就是9:00但是如果此时别人的电脑时间是10:00在别人的电脑上js获取的时间就是10:00。
s是客服端脚本,是不能直接获取服务器端的时间的,除非你用asp,或者jsp,php,等写一个动态的js脚本。
Js获取当前日期时间及其它操作
var myDate = new Date();
myDategetYear(); //获取当前年份(2位)
myDategetFullYear(); //获取完整的年份(4位,1970-)
myDategetMonth(); //获取当前月份(0-11,0代表1月)
myDategetDate(); //获取当前日(1-31)
myDategetDay(); //获取当前星期X(0-6,0代表星期天)
myDategetTime(); //获取当前时间(从197011开始的毫秒数)
myDategetHours(); //获取当前小时数(0-23)
myDategetMinutes(); //获取当前分钟数(0-59)
myDategetSeconds(); //获取当前秒数(0-59)
myDategetMilliseconds(); //获取当前毫秒数(0-999)
myDatetoLocaleDateString(); //获取当前日期
var mytime=myDatetoLocaleTimeString(); //获取当前时间
myDatetoLocaleString( ); //获取日期与时间
日期时间脚本库方法列表
DateprototypeisLeapYear 判断闰年
DateprototypeFormat 日期格式化
DateprototypeDateAdd 日期计算
DateprototypeDateDiff 比较日期差
DateprototypetoString 日期转字符串
DateprototypetoArray 日期分割为数组
DateprototypeDatePart 取日期的部分信息
DateprototypeMaxDayOfDate 取日期所在月的最大天数
DateprototypeWeekNumOfYear 判断日期所在年的第几周
StringToDate 字符串转日期型
IsValidDate 验证日期有效性
CheckDateTime 完整日期时间检查
daysBetween 日期天数差
js代码:
//---------------------------------------------------
// 判断闰年
//---------------------------------------------------
DateprototypeisLeapYear = function()
{
return (0==thisgetYear()%4&&((thisgetYear()%100!=0)||(thisgetYear()%400==0)));
}
//---------------------------------------------------
// 日期格式化
// 格式 YYYY/yyyy/YY/yy 表示年份
// MM/M 月份
// W/w 星期
// dd/DD/d/D 日期
// hh/HH/h/H 时间
// mm/m 分钟
// ss/SS/s/S 秒
//---------------------------------------------------
DateprototypeFormat = function(formatStr)
{
var str = formatStr;
var Week = ['日','一','二','三','四','五','六'];
str=strreplace(/yyyy|YYYY/,thisgetFullYear());
str=strreplace(/yy|YY/,(thisgetYear() % 100)>9(thisgetYear() % 100)toString():'0' + (thisgetYear() % 100));
str=strreplace(/MM/,thisgetMonth()>9thisgetMonth()toString():'0' + thisgetMonth());
str=strreplace(/M/g,thisgetMonth());
str=strreplace(/w|W/g,Week[thisgetDay()]);
str=strreplace(/dd|DD/,thisgetDate()>9thisgetDate()toString():'0' + thisgetDate());
str=strreplace(/d|D/g,thisgetDate());
str=strreplace(/hh|HH/,thisgetHours()>9thisgetHours()toString():'0' + thisgetHours());
str=strreplace(/h|H/g,thisgetHours());
str=strreplace(/mm/,thisgetMinutes()>9thisgetMinutes()toString():'0' + thisgetMinutes());
str=strreplace(/m/g,thisgetMinutes());
str=strreplace(/ss|SS/,thisgetSeconds()>9thisgetSeconds()toString():'0' + thisgetSeconds());
str=strreplace(/s|S/g,thisgetSeconds());
return str;
}
//+---------------------------------------------------
//| 求两个时间的天数差 日期格式为 YYYY-MM-dd
//+---------------------------------------------------
function daysBetween(DateOne,DateTwo)
{
var OneMonth = DateOnesubstring(5,DateOnelastIndexOf ('-'));
var OneDay = DateOnesubstring(DateOnelength,DateOnelastIndexOf ('-')+1);
var OneYear = DateOnesubstring(0,DateOneindexOf ('-'));
var TwoMonth = DateTwosubstring(5,DateTwolastIndexOf ('-'));
var TwoDay = DateTwosubstring(DateTwolength,DateTwolastIndexOf ('-')+1);
var TwoYear = DateTwosubstring(0,DateTwoindexOf ('-'));
var cha=((Dateparse(OneMonth+'/'+OneDay+'/'+OneYear)- Dateparse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);
return Mathabs(cha);
}
//+---------------------------------------------------
//| 日期计算
//+---------------------------------------------------
DateprototypeDateAdd = function(strInterval, Number) {
var dtTmp = this;
switch (strInterval) {
case 's' :return new Date(Dateparse(dtTmp) + (1000 Number));
case 'n' :return new Date(Dateparse(dtTmp) + (60000 Number));
case 'h' :return new Date(Dateparse(dtTmp) + (3600000 Number));
case 'd' :return new Date(Dateparse(dtTmp) + (86400000 Number));
case 'w' :return new Date(Dateparse(dtTmp) + ((86400000 7) Number));
case 'q' :return new Date(dtTmpgetFullYear(), (dtTmpgetMonth()) +
Number3, dtTmpgetDate(), dtTmpgetHours(), dtTmpgetMinutes(),
dtTmpgetSeconds());
case 'm' :return new Date(dtTmpgetFullYear(), (dtTmpgetMonth()) +
Number, dtTmpgetDate(), dtTmpgetHours(), dtTmpgetMinutes(),
dtTmpgetSeconds());
case 'y' :return new Date((dtTmpgetFullYear() + Number),
dtTmpgetMonth(), dtTmpgetDate(), dtTmpgetHours(), dtTmpgetMinutes(),
dtTmpgetSeconds());
}
}
//+---------------------------------------------------
//| 比较日期差 dtEnd 格式为日期型或者有效日期格式字符串
//+---------------------------------------------------
DateprototypeDateDiff = function(strInterval, dtEnd) {
var dtStart = this;
if (typeof dtEnd == 'string' )//如果是字符串转换为日期型
{
dtEnd = StringToDate(dtEnd);
}
switch (strInterval) {
case 's' :return parseInt((dtEnd - dtStart) / 1000);
case 'n' :return parseInt((dtEnd - dtStart) / 60000);
case 'h' :return parseInt((dtEnd - dtStart) / 3600000);
case 'd' :return parseInt((dtEnd - dtStart) / 86400000);
case 'w' :return parseInt((dtEnd - dtStart) / (86400000 7));
case 'm' :return (dtEndgetMonth()+1)+((dtEndgetFullYear()-dtStartgetFullYear())12) - (dtStartgetMonth()+1);
case 'y' :return dtEndgetFullYear() - dtStartgetFullYear();
}
}
//+---------------------------------------------------
//| 日期输出字符串,重载了系统的toString方法
//+---------------------------------------------------
DateprototypetoString = function(showWeek)
{
var myDate= this;
var str = myDatetoLocaleDateString();
if (showWeek)
{
var Week = ['日','一','二','三','四','五','六'];
str += ' 星期' + Week[myDategetDay()];
}
return str;
}
//+---------------------------------------------------
//| 日期合法性验证
//| 格式为:YYYY-MM-DD或YYYY/MM/DD
//+---------------------------------------------------
function IsValidDate(DateStr)
{
var sDate=DateStrreplace(/(^\s+|\s+$)/g,''); //去两边空格;
if(sDate=='') return true;
//如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''
//数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式
var s = sDatereplace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,'');
if (s=='') //说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D
{
var t=new Date(sDatereplace(/\-/g,'/'));
var ar = sDatesplit(/[-/:]/);
if(ar[0] != tgetYear() || ar[1] != tgetMonth()+1 || ar[2] != tgetDate())
{
//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');
return false;
}
}
else
{
//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');
return false;
}
return true;
}
//+---------------------------------------------------
//| 日期时间检查
//| 格式为:YYYY-MM-DD HH:MM:SS
//+---------------------------------------------------
function CheckDateTime(str)
{
var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;
var r = strmatch(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);
if(dgetFullYear()!=r[1])return false;
if(dgetMonth()!=r[2])return false;
if(dgetDate()!=r[3])return false;
if(dgetHours()!=r[4])return false;
if(dgetMinutes()!=r[5])return false;
if(dgetSeconds()!=r[6])return false;
return true;
}
//+---------------------------------------------------
//| 把日期分割成数组
//+---------------------------------------------------
DateprototypetoArray = function()
{
var myDate = this;
var myArray = Array();
myArray[0] = myDategetFullYear();
myArray[1] = myDategetMonth();
myArray[2] = myDategetDate();
myArray[3] = myDategetHours();
myArray[4] = myDategetMinutes();
myArray[5] = myDategetSeconds();
return myArray;
}
//+---------------------------------------------------
//| 取得日期数据信息
//| 参数 interval 表示数据类型
//| y 年 m月 d日 w星期 ww周 h时 n分 s秒
//+---------------------------------------------------
DateprototypeDatePart = function(interval)
{
var myDate = this;
var partStr='';
var Week = ['日','一','二','三','四','五','六'];
switch (interval)
{
case 'y' :partStr = myDategetFullYear();break;
case 'm' :partStr = myDategetMonth()+1;break;
case 'd' :partStr = myDategetDate();break;
case 'w' :partStr = Week[myDategetDay()];break;
case 'ww' :partStr = myDateWeekNumOfYear();break;
case 'h' :partStr = myDategetHours();break;
case 'n' :partStr = myDategetMinutes();break;
case 's' :partStr = myDategetSeconds();break;
}
return partStr;
}
不是很懂,这是别人支的招,你看看有没有用:
1那就要使用AJAX,用JS调用服务器程序来获取时间!
2只能服务器把时间传到前台,前台获取。
3一秒读一次服务器时间不现实 可以通过服务器时间初始化个JS的时间对象 然后每次都基于服务器时间变动JS时间 如何
timestamp为当前的时间戳就是服务器的时间转换为的毫秒数。
nonceStr是自己写的一个随机字符串。
jsapi_ticket呢要先获取access_token。
具体如下:
1、简介
微信(wechat)是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信、视频、和文字,同时,也可以使用通过共享流媒体内容的资料和基于位置的社交插件“摇一摇”、“漂流瓶”、“朋友圈”、”公众平台“、”语音记事本“等服务插件。
2、发展历程
微信由深圳腾讯控股有限公司(TencentHoldingsLimited)于2010年10月筹划启动,由腾讯广州研发中心产品团队打造。该团队经理张小龙所带领的团队曾成功开发过Foxmail、QQ邮箱等互联网项目。腾讯公司总裁马化腾在产品策划的邮件中确定了这款产品的名称叫做“微信”。
3、基本功能
聊天:支持发送语音短信、视频、(包括表情)和文字,是一种聊天软件,支持多人群聊(最高40人,100人和200人的群聊正在内测)。
0条评论