日期类型的问题

var myDate = new Date;
year = myDate.getFullYear(); 
month = "0" + myDate.getMonth();          //月份获得是从第0月开始,而得到的月份中(1--9月不会表示成”01--09“的形式)
days = myDate.getDate()
当前时间字符串大小进行比较,
 
起始时间(三个月前,因为月份是从0开始,所以-2):
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

格式化时间类型的时候,改变分隔符('-'变为'/'),以及将月份中1~9月中前面的0去掉(只是为了配合数据库中的格式 可怜,数据库中数据量太大了,就委屈一下前台抛过来的数据吧)
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))






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值