javascript刻度,js刻度尺

js根据时间范围生成时间刻度数据

使用d3绘制时间轴图表,不可避免的涉及到动态变动时间刻度,根据业务需求需要调整查看不同的时间粒度数据。如果后台数据非连续数据,需要前端自己处理的话,就得自己根据时间范围创建时间刻度数据。

成都创新互联是一家专业提供高邑企业网站建设,专注与成都网站设计、做网站、H5高端网站建设、小程序制作等业务。10年已为高邑众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

以上方法,亲测有效。注意一定要使用固定的时间作为基准点,否则以天为刻度时,会有时区差异。以秒和分钟作为时间粒度,没问题,因为是更小一级的单位,进行整除运算没有问题。

时间桶的概念,就是以该间隔作为时间刻度

为什么我会前端处理时间轴数据?

相信如果使用过d3进行时间轴图表定制的同学,一定使用过 d3.scaleTime 或者 d3.scaleUtc 进行时间轴比例尺的绘制,它的智能之处,就是可以根据你的时间范围,动态的创建出适合当前显示区域坐标系的时间刻度数据,就算你的数据是不连续的,也没有问题。但是结合brush刷取api进行使用的时候就用问题了,当初始化数据不符合具体的刷取机制,进行刷取范围的默认设置,就会出现绘制图表不连续,移动刷取框更新图表错误的问题。(具体原因未知,有大神有相应的认知可以在评论群告知一波,非常感谢)

基于以上问题,我通过自己创建时间刻度,使用 d3.scaleLinear 线性比例尺,结合brush进行缩放x轴,就没有任何问题,因为我的数据处理后都是连续的,每个时间刻度已经固定,规避了上面的问题。

javascript 分别读取时间中的年、月、日、时、分、秒的方法

javascript 自带有个对象(构造函数),Date().下面是代码:

var myDate = new Date(); //实例一个时间对象;

myDate.getFullYear(); //获取系统的年;

myDate.getMonth()+1; //获取系统月份,由于月份是从0开始计算,所以要加1

myDate.getDate(); // 获取系统日,

myDate.getHours(); //获取系统时,

myDate.getMinutes(); //分

myDate.getSeconds(); //秒

js 录入时间 精确到小时.

我这有一个ASP.NET做的软件里有你要的JS脚本.

title- -选择日期 - -/title

script

//*************************日历控件***************************

// cody by [STAR].sjz 2003-10-31

// 说明:返回值为 一个字符串

// 格式如下:

// 使用方法 :

// var dataString = showModalDialog("calendar.htm", "dd日mm月yyyy年" ,"dialogWidth:286px;dialogHeight:221px;status:no;help:no;");

var userFormatString;

if(window.dialogArguments ==null)

{

userFormatString = "yyyy-mm--dd";

}

else

{

userFormatString = window.dialogArguments;

}

with(new Date()){

var Nyear = getYear();

var Nmonth = getMonth() +1;

var Ndate = getDate();

}

window.returnValue = new dataObj(Nyear,Nmonth,Ndate ).getDateString(userFormatString);

window.document.onclick = function(){

var obj = window.event.srcElement;

if(obj.tagName.toLowerCase() == "span" obj.parentNode.className.replace(/Ctable/ig,"star") == "star" )

{

try{

window.currentActiveItem.runtimeStyle.cssText = "";

}

catch(e){ }

Nyear = obj.id.split("-")[0];

Nmonth = obj.id.split("-")[1];

Ndate = obj.id.split("-")[2];

window.currentActiveItem = obj;

window.currentSelectDate = window.currentActiveItem.id;

window.currentActiveItem.runtimeStyle.cssText = "background:url() no-repeat 12px 6px;color:#000;padding-top:1px;font-weight:bold";

}

window.ftime.Text1.value="";

//window.ftime.Text1.value= window.currentSelectDate+" "+window.ftime.Select1.options[window.ftime.Select1.selectedIndex].text+":"+window.ftime.Select2.options[window.ftime.Select2.selectedIndex].text;

window.ftime.Text1.value= window.currentSelectDate;

window.returnValue = window.ftime.Text1.value;

// window.ftime.Text1.value= window.currentSelectDate;

//window.ftime.Text1.value=window.ftime.Text1.value+window.ftime.Select1.options[window.ftime.Select1.selectedIndex].text;

}

function dataObj(year,month,date)

{

this.year = year

this.month = month

this.date = date

this.getDateString =

function(formatString)

{

return formatString.replace(/yyyy/ig , this.year).replace(/mm/ig , this.month).replace(/dd/ig , this.date)

}

}

window.onload = function(){

window.document.attachEvent("onclick" , doCmd);

window.document.attachEvent("onmouseover" , buttonOver);

window.document.attachEvent("onmouseout" , buttonOut);

window.document.attachEvent("onmousedown" , buttonDown);

window.document.attachEvent("onmouseup" , buttonUp);

window.document.attachEvent("ondblclick" ,

function()

{

var obj = window.event.srcElement;

if(obj.tagName.toLowerCase() == "span" obj.parentNode.className.replace(/Ctable/ig,"star") == "star" )

{

var mydate = new dataObj(obj.id.split("-")[0] , obj.id.split("-")[1] , obj.id.split("-")[2] );

window.returnValue = window.ftime.Text1.value;

window.close();

}

}

);

document.all.titleYear.innerHTML=TranYearMonthTitle(Nyear,Nmonth);

document.all.weekNameBox.insertAdjacentHTML("afterBegin",makeWeekNameHtmlStr());

document.all.calendarBox.innerHTML=makeCalendarHtmlStr(Nyear,Nmonth);

window.currentSelectDate = starCaTran(Nyear,Nmonth,Ndate);

window.document.all.calendarBox.show = show;

window.currentActiveItem = window.document.getElementById(currentSelectDate);

if( window.currentActiveItem )

window.currentActiveItem.click();

window.document.all.calendarBox.show();

today=new Date();

window.ftime.Select1.selectedIndex=today.getHours();

window.ftime.Select2.selectedIndex=today.getMinutes();

// window.ftime.Text1.value= window.currentSelectDate+" "+window.ftime.Select1.options[window.ftime.Select1.selectedIndex].text+":"+window.ftime.Select2.options[window.ftime.Select2.selectedIndex].text;

window.ftime.Text1.value= window.currentSelectDate;

window.returnValue = window.ftime.Text1.value;

}

function starCalendar(year,month){

this.year = year;

this.month = month;

this.monthTable = function(){

var aMonth=new Array();

for(i=1;i7;i++)aMonth[i]=new Array(i);

var dCalDate=new Date(this.year, this.month-1, 1);

var iDayOfFirst=dCalDate.getDay();

var iDaysInMonth=new Date(this.year, this.month, 0).getDate();

var iOffsetLast=new Date(this.year, this.month-1, 0).getDate()-iDayOfFirst+1;

var iDate = 1;

var iNext = 1;

for (d = 0; d 7; d++)

aMonth[1][d] = (diDayOfFirst)?(-iDayOfFirst+d+1):iDate++;

for (w = 2; w 7; w++)

for (d = 0; d 7; d++)

aMonth[w][d] = iDate++;

return aMonth;

}

}

function makeWeekNameHtmlStr(){

var tmpStr="";

var weekName = ["日","一","二","三","四","五","六"];

for(var i=0;i7;i++)tmpStr+="span class=weekName"+weekName[i]+"/span";

return tmpStr;

}

function makeCalendarHtmlStr(year,month){

window.theCalendar = new starCalendar(year,month);

var theCaArr = theCalendar.monthTable();

var theDaysInMonth = new Date(year, month, 0).getDate();

var theCaHtml = "div class=Ctable";

for(var i=1;i7;i++)

for(var j=0;j7;j++)

theCaHtml = theCaHtml+"span class="+( (theCaArr[i][j]1 || theCaArr[i][j]theDaysInMonth)?"OtherMonthDate":"Cdate")+" id="+starCaTran(year,month,theCaArr[i][j])+""+starCaTran(year,month,theCaArr[i][j]).split("-")[2]+"/span";

return theCaHtml+"/div";

}

function starCaTran(year,month,date){

with(new Date(year,month-1,date))

return getYear() + "-" +(getMonth()+1) + "-" + getDate();

}

function TranYearMonthTitle(year,month){

with(new Date(year,month-1,1))

return "span style='text-decoration:underline;cursor:hand;font-weight:bold;padding:1 2 0 1;width:40px;' onclick=showMore(1940,2050,this.innerHTML) onmouseover=\"this.runtimeStyle.cssText='color:#fff;'\" onmouseout=\"this.runtimeStyle.cssText=''\" onpropertychange=showC()" + getYear() + "/span" + "年" + "span style='text-decoration:underline;cursor:hand;font-weight:bold;padding:1 2 0 1;width:20px;' onclick=showMore(1,12,this.innerHTML) onmouseover=\"this.runtimeStyle.cssText='color:#fff;'\" onmouseout=\"this.runtimeStyle.cssText=''\" onpropertychange=showC()" + (getMonth()+1) + "/span" + "月" ;

}

function showC(){

if(event.propertyName != "innerHTML")return;

window.theCalendar.year = new Number(document.all.titleYear.getElementsByTagName("span")[0].innerHTML);

window.theCalendar.month = new Number(document.all.titleYear.getElementsByTagName("span")[1].innerHTML);

window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month);

window.document.all.calendarBox.show = show;window.document.all.calendarBox.show();

}

function showMore(starNum,endNum,selectedValue){

var obj = window.event.srcElement;

var selectedIndex = selectedValue - starNum;

if(obj.selectBox){

obj.selectBox.selectedIndex = selectedIndex;

return obj.selectBox.show(document.all.calendarBox.offsetHeight + document.all.weekNameBox.offsetHeight );

}

var selectBox = window.document.createElement("div");

selectBox.className = "selectBox";

selectBox.style.height = 0;

selectBox.style.top = window.event.clientY - window.event.offsetY + window.event.srcElement.offsetHeight;

selectBox.style.left = window.event.clientX - window.event.offsetX ;

selectBox.show = showBox;

selectBox.selectedIndex = selectedIndex;

selectBox.onclick = function(){

var selectedObj = window.event.srcElement;

if( "nobr" == selectedObj.tagName.toLowerCase() selectBox.contains(selectedObj))

{

if(obj.innerHTML != selectedObj.innerHTML)obj.innerHTML = selectedObj.innerHTML;

}

}

selectBox.onlosecapture = alert

var iString = "";

for(var i=starNum;i=endNum;i++){

iString += "nobr onmouseover=\"this.parentNode.getElementsByTagName('nobr')[this.parentNode.selectedIndex].style.cssText='';this.style.cssText='background-color:#00006C;color:#fff;'\" onmouseout=this.style.cssText=''"+i+"/nobrbr"

}

selectBox.insertAdjacentHTML ("afterBegin",iString);

window.document.body.appendChild(selectBox);

obj.selectBox = selectBox;

obj.selectBox.show(document.all.calendarBox.offsetHeight + document.all.weekNameBox.offsetHeight );

}

function showBox(iHeight)

{

var box = this;

box.style.height =1;

box.style.display = "block";

window.clearInterval(box.timeHandle);

box.timeHandle = window.setInterval(interValHandle,1);

var s = 0,t =1 ;

function interValHandle()

{

box.scrollTop=1000000;

s = s + t*t;

t += 0.5;

box.style.height = parseInt(box.style.height) + Math.floor(s);

box.style.width = 65 / iHeight * box.offsetHeight;

if( box.offsetHeight iHeight )

{

window.clearInterval(box.timeHandle);

box.style.height = iHeight;

box.scrollTop = box.childNodes[0].offsetHeight*box.selectedIndex;

box.getElementsByTagName("nobr")[box.selectedIndex].style.cssText='background-color:#00006C;color:#fff;';

window.document.attachEvent("onclick",

box.hide=function()

{

box.style.display = "none";

window.document.detachEvent("onclick",box.hide)

}

);

}

}

}

/script

script

function buttonOver(){

var obj = window.event.srcElement;

if(obj.tagName.toLowerCase() == "span" obj.className.replace(/controlButton/ig,"star") == "star" )

{

obj.runtimeStyle.cssText="border-color:#fff #606060 #808080 #fff;padding:3 0 0 0 ";

}

if(obj.tagName.toLowerCase() == "span" obj.parentNode.className.replace(/Ctable/ig,"star") == "star" )

{

obj.style.backgroundColor = "#fff";

}

}

function buttonOut(){

var obj = window.event.srcElement;

if(obj.tagName.toLowerCase() == "span" obj.className.replace(/controlButton/ig,"star") == "star" )

{

obj.runtimeStyle.cssText = "";

}

if(obj.tagName.toLowerCase() == "span" obj.parentNode.className.replace(/Ctable/ig,"star") == "star" )

{

window.setTimeout(function(){obj.style.backgroundColor = ""; },300);

}

}

function buttonDown(){

var obj = window.event.srcElement;

if(obj.tagName.toLowerCase() == "span" obj.className.replace(/controlButton/ig,"star") == "star" )

{

obj.setCapture();

obj.runtimeStyle.borderColor="#808080 #fefefe #fefefe #808080";

}

}

function buttonUp(){

var obj = window.event.srcElement;

if(obj.tagName.toLowerCase() == "span" obj.className.replace(/controlButton/ig,"star") == "star" )

{

obj.releaseCapture();

obj.runtimeStyle.cssText ="";

}

}

function doCmd(){

var obj = window.event.srcElement;

if(obj.tagName.toLowerCase() == "span" obj.className.replace(/controlButton/ig,"star") == "star" )

{

switch(obj.getAttribute("cmd"))

{

case "py":

window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year-1,window.theCalendar.month);

window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year-1,window.theCalendar.month);

break;

case "pm":

window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month-1);

window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month-1);

break;

case "nm":

window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month+1);

window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month+1);

break;

case "ny":

window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year+1,window.theCalendar.month);

window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year+1,window.theCalendar.month);

break;

}

window.document.all.calendarBox.show();

window.currentSelectDate = starCaTran(Nyear,Nmonth,Ndate);

window.currentActiveItem = window.document.getElementById(currentSelectDate);

if( window.currentActiveItem )window.currentActiveItem.runtimeStyle.cssText = "background:url(choiceit.gif) no-repeat 12px 6px;color:#000;padding-top:1px;font-weight:bold";

}

}

function show()

{

var box = this;

window.clearTimeout(box.timeHandle);

var CdateBoxs = this.getElementsByTagName("span");

for(var i=0;iCdateBoxs.length;i++)

{

CdateBoxs[i].defaultValue = new Number( CdateBoxs[i].innerHTML );

CdateBoxs[i].innerHTML = 0;

}

showDate();

function showDate(){

for(var i=0;iCdateBoxs.length;i++){

if( new Number( CdateBoxs[i].innerHTML ) + 1 = new Number( CdateBoxs[i].defaultValue ) )

CdateBoxs[i].innerHTML = new Number( CdateBoxs[i].innerHTML ) + 1

}

box.timeHandle = window.setTimeout(showDate,1);

}

this.show = show1

}

function show1()

{

var box = this;

window.clearTimeout(box.timeHandle);

var CdateBoxs = this.getElementsByTagName("span");

for(var i=0;iCdateBoxs.length;i++)CdateBoxs[i].style.display = "none";

showDate(CdateBoxs[0]);

function showDate(obj){

if( !obj )return;

obj.style.display = "inline";

box.timeHandle = window.setTimeout(function(){showDate(obj.nextSibling);},1);

}

this.show = show

}

/*

function show()

{

}

*/

/script

style *{ font:12px; letter-spacing:0px; }

body{ background-color:#e5eaa0; overflow:hidden; margin:0; border:0px; }

#titleYear{ text-align:center; padding-top:3px; width:120px; height:20px; border:solid #E5E9F2; border-width:0px 1px 1px 0px; background-color:#97ca00; color:#000; cursor:default; }

#weekNameBox{ width:282px; border-bottom:0; }

.weekName{ text-align:center; padding-top:4px; width:40px; height:20px; border:solid #E5E9F2; border-width:0px 1px 1px 0px; background-color:#C0D0E8; color:#243F65; cursor:default; }

.controlButton{ font-family: Webdings; font:9px; text-align:center; padding-top:2px; width:40px; height:20px; border:solid #E5E9F2; border-width:0px 1px 1px 0px; background-color:#95ca00; color:#243F65; cursor:default; }

.Ctable{ width:282px; margin-bottom:20px; }

.Ctable span{ font:9px verdana; font-weight:bold; color:#243F65; text-align:center; padding-top:4px; width:40px; height:26px; border:solid #C0D0E8; border-width:0px 1px 1px 0px; cursor:default; }

.Cdate{ background-color:#b4dad6; }

.Ctable span.OtherMonthDate{ color:#999; background-color:#f6f6f6; }

.selectBox{ cursor:hand; font:9px verdana; width:80px; position:absolute; border:1px solid #425E87; overflow-y:scroll; overflow-x:hidden; background-color:#fff; FILTER:progid:DXImageTransform.Microsoft.Shadow(Color=#999999,offX=10,offY=10,direction=120,Strength=5); SCROLLBAR-FACE-COLOR: #E5E9F2; SCROLLBAR-HIGHLIGHT-COLOR: #E5E9F2; SCROLLBAR-SHADOW-COLOR: #A4B9D7; SCROLLBAR-3DLIGHT-COLOR: #A4B9D7; SCROLLBAR-ARROW-COLOR: #000000; SCROLLBAR-TRACK-COLOR: #eeeee6; SCROLLBAR-DARKSHADOW-COLOR: #ffffff; }

.selectBox nobr{ padding:0px 0px 2px 5px; width:100%; color:#000; letter-spacing:2px; text-decoration:none; }

/style

body onselectstart="return false"

div style="MARGIN:0px"

div id="controlBar"span class="controlButton" cmd="py" title="上一年"33/spanspan class="controlButton" cmd="pm" title="上一月"3/spanspan id="titleYear"/spanspan class="controlButton" cmd="nm" title="下一月"4/spanspan class="controlButton" cmd="ny" title="下一年"44/span/div

div id="weekNameBox"/div

div id="calendarBox"/div

/div

form id=ftime

font

SELECT id="Select1" name=shour

OPTION00/OPTION

OPTION01/OPTION

OPTION02/OPTION

OPTION03/OPTION

OPTION04/OPTION

OPTION05/OPTION

OPTION06/OPTION

OPTION07/OPTION

OPTION08/OPTION

OPTION09/OPTION

OPTION10/OPTION

OPTION11/OPTION

OPTION12/OPTION

OPTION13/OPTION

OPTION14/OPTION

OPTION15/OPTION

OPTION16/OPTION

OPTION17/OPTION

OPTION18/OPTION

OPTION19/OPTION

OPTION20/OPTION

OPTION21/OPTION

OPTION22/OPTION

OPTION23/OPTION

OPTION00/OPTION

/SELECTb点/b

SELECT id="Select2" name=sminute

OPTION00/OPTION

OPTION01/OPTION

OPTION02/OPTION

OPTION03/OPTION

OPTION04/OPTION

OPTION05/OPTION

OPTION06/OPTION

OPTION07/OPTION

OPTION08/OPTION

OPTION09/OPTION

OPTION10/OPTION

OPTION11/OPTION

OPTION12/OPTION

OPTION13/OPTION

OPTION14/OPTION

OPTION15/OPTION

OPTION16/OPTION

OPTION17/OPTION

OPTION18/OPTION

OPTION19/OPTION

OPTION20/OPTION

OPTION21/OPTION

OPTION22/OPTION

OPTION23/OPTION

OPTION24/OPTION

OPTION25/OPTION

OPTION26/OPTION

OPTION27/OPTION

OPTION28/OPTION

OPTION29/OPTION

OPTION30/OPTION

OPTION31/OPTION

OPTION32/OPTION

OPTION33/OPTION

OPTION34/OPTION

OPTION35/OPTION

OPTION36/OPTION

OPTION37/OPTION

OPTION38/OPTION

OPTION39/OPTION

OPTION40/OPTION

OPTION41/OPTION

OPTION42/OPTION

OPTION43/OPTION

OPTION44/OPTION

OPTION45/OPTION

OPTION46/OPTION

OPTION47/OPTION

OPTION48/OPTION

OPTION49/OPTION

OPTION50/OPTION

OPTION51/OPTION

OPTION52/OPTION

OPTION53/OPTION

OPTION54/OPTION

OPTION55/OPTION

OPTION56/OPTION

OPTION57/OPTION

OPTION58/OPTION

OPTION59/OPTION

/SELECTb分/b

INPUT id="Text1" type="text" name="Text1" value="111"/FONT

/form

/body

拷贝下来试试! 行的话给分啊 呵呵:)

楼主用的什么变成语言啊?如果是ASP,NET就很简单啊,我就是把这个脚本做成单独的页面,直接在其他页面调用的啊.如果是别的语言,你就把JS脚本函数弄过去.

JSP我没用过,把我这个页面直接弄过去,在其他页面调用不行吗?这个就是JS+HTML啊.应该可以吧.当需要调用的时候不调用脚本,调用这个网页,让程序弹出这个网页,设置网页的大小(就像弹出来一个小日历一样)就行.和我这的效果一样.

我照你说的改了改,不太好用,呵呵.只能帮这么多了,你看看吧.我可以担保给你的程序绝对可用.请别人帮着把我这个改了吧.谁改的好就给谁分吧:)

javascript 有没有绘图功能

javascript有绘制矢量图的功能。

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。


名称栏目:javascript刻度,js刻度尺
地址分享:http://azwzsj.com/article/phcice.html