var myDate = new Date;
year = myDate.getFullYear();
month = "0" + myDate.getMonth(); //月份获得是从第0月开始,而得到的月份中(1--9月不会表示成”01--09“的形式)
days = myDate.getDate()
起始时间(三个月前,因为月份是从0开始,所以-2):
格式化时间类型的时候,改变分隔符('-'变为'/'),以及将月份中1~9月中前面的0去掉(只是为了配合数据库中的格式
,数据库中数据量太大了,就委屈一下前台抛过来的数据吧)
date_from=(myDate.getFullYear()+"-"+ (myDate.getMonth()-2)+"-"+myDate.getDate());
得到起始时间为:"2013-7-24"
截止时间为当前时间(因为月份从0开始,所以+1):
date_to = (myDate.getFullYear()+"-"+(myDate.getMonth()+1)+"-"+myDate.getDate());
得到截止时间为:"2013-10-24"
进行起始时间和截止时间的大小判断,if(date_from<=date_to){}
此时比较的是字符串"2013-7-24"以及"2013-10-24"的大小,前五位为"2013-"判断到此处时,二者大小还是相等的
再往下判断时,起始时间为"7"(而不是07),但是截止时间却为"1",故此时,date_from就大于了date_to,字符串比较时,事实上他们的长度已经不相等了
********************************************************************************
稍复杂点的时间格式情况:
1、数据源(csv,xls,或者opc中读取)中的保存的时间格式
2、存入到数据库中的时间格式
3、前台抛到后台的时间格式
4、后台从数据库中查询出的时间格式(与第2条不会完全一样,涉及到分隔符)
5、导出(返回到前端、在服务器端或者本地)csv、xls时所要保存时间格式
上述5种数据格式均可以修改,但是,逻辑判断时,第3、4条为核心,它直接会牵涉到你的SQL语句的查询条件,因为可能会出现类似上面所叙述的"10小于7"的情况。
前台抛到后台的数据格式大多为标准格式,即2013-07-12,不会写成2013-7-12;如果此时数据库中查出格式稍有不同如2013/7/12,此时最好在后台做一些修改(实在是个人的javascript能力有限),将分隔符及月份做一些调整使其满足前端所跑过来的数据格式(split,join,补0)
python实现下一天的函数(2013-12-31会自动变为2014-01-01)
注意此处的时间分隔符为“-”
datapatten2 = "2013-12-31"
def nextDay(ymd,num=1):
(year, month, day) = ymd.split('-')
print month[0],month[1]
x = timedelta(days = num)
y = date(int(year), int(month),int(day))
return y+x
def data_format(ymd):
(year,month,day) = ymd.split('-')
#不要被数值长相的字符串迷惑了,其实此时的0是str类型,太坑了
print type(month[0])
assert len(month)==2
if month[0] == '0':
monthchg= month[1]
return '/'.join((year,monthchg,day))
else:
return '/'.join((year,month,day))