最近有很多时间相关的一些技术积累,主要分为三块,

  • 1.gettimeofday时间差不准的bug
  • 2.时间的字符串形式和时间戳形式的转化(C语言)
  • 3.提供时间日期选择的控件

一.gettimeofday时间不准的bug
先从第一个说起吧,前几天在fuload项目通过如下代码统计调用消耗的时间:

按理说是很平常的写法,但是在实际的曲线图中,却发现每隔20分钟就会出现一个很大的波动,在网上苦询答案未果,最后突然想起来,既然是规律性的出现问题,是不是crontab中有每隔20分钟的调用导致的问题呢?最终在crontab中发现了这个:

原来每隔20分钟就会对时一次,难怪出现问题,果断注释后,恢复正常。

二.时间的字符串形式和时间戳形式的转化(C语言)
之前在博客里是有谢过C语言中,时间戳和字符串的转化函数的(时间time_t和string(char*)格式互转),不过可定制话太低了,恰好之前在内部论坛看到同事分享的另一种做法,所以拿出来和大家分享一下。
linux下默认提供了两个时间转化的函数(python中的time模块下也有相同名称的定义):

我在这里简单写了一个测试程序:

输出结果如下:

特别需要注意的第一点是:strftime的第二个参数如果小于实际要存放的长度的话,这个函数是不会自动在最后一个字符补上\0的。
参考:http://baike.baidu.com/view/1284677.htm

三.提供时间日期选择的控件
也是fuload项目中使用的一个控件,之前本来是直接使用了django后台的日期选择控件,后来发现精度要求达到分钟,所以不得不去寻找一款能同时选择日期和时间的控件,好在后来还是被我找到啦,截图如下:

1

插件名为:Timepicker Addon for jQuery UI Datepicker,是在jquery的datepicker基础上修改的,插件主页:http://trentrichardson.com/examples/timepicker/
使用时需要下载安装jQuery UI,这里简单列出一下用法:
在head中加入:

并对你需要弹出选择框的元素进行绑定:

但是需要注意一点的是,如果有多个元素需要绑定选择框是不能用如下方法的:

而必须使用:

OK,就这样~

暂无相关产品

3则回应给“时间相关的一些前后台知识”

  1. abrahamgx说道:

    你好,请问你的代码是怎么发的?我也想把代码发出来,不知道怎么才能做到像你这样的排版,还有前面的序号.

    [回复]

    Dante 回复:

    wp_syntax,试一下这个插件

    [回复]

  2. neo说道:

    某次程序中发现timeBegin居然大于timeEnd,马上就想到了博主的这篇文章,然后查了一下crontab果然有ntpdate在作祟

    [回复]

发表评论