精华内容
下载资源
问答
  • js 获取某一天的前一天时间或者后一天时间codeBlock// 获取某一天的前一天 或者 后一天时间/* * someday 可以为毫秒制或者 new Date() 的返回值 * preOrNext 取值范围: 1. 'pre'前一天 2. 'next' 后一天 */ ...

    js 获取某一天的前一天时间或者后一天时间

    codeBlock

    // 获取某一天的前一天 或者 后一天的时间
    
    /*
     * someday 可以为毫秒制或者 new Date() 的返回值
     * preOrNext 取值范围: 1. 'pre'前一天   2. 'next' 后一天
     */
    function getTime(preOrNext,someday){
        someday = someday || new Date;
        if(preOrNext == 'pre') 
            return new Date(someday.getTime() - 3600 *24 *1000);
        else if (preOrNext == 'next')
            return new Date(someday.getTime() + 60 * 60 *24 * 1000);
        else 
            return '参数输入格式有误'
    }
    
    var pretime = getTime ('pre');
    console.log(pretime);
    
    var nexttime = getTime('next');
    console.log("nexttime",nexttime);
    
    var augFive = getTime('next',new Date(2017,7,4));
    
    console.log("augFive",augFive);

    原理分析

    通过 某一天 的对应的毫秒制时间减去 一天的毫秒数(24 * 3600) 得
    前一天时间,相应的加上一天的毫秒数得到后一天的时间

    someDay - 24 * 3600 = 前一天
    someDay + 24 * 3600 = 后一天

    补充

    计算机时间起点 1970-01-01 00:00:00由来

    Integer 在JAVA内用32位表示,因此32位能表示的最大值是2147483647(注意有符号)。另外1年365天的总秒数是 31536000,2147483647/31536000 = 68.1,也就是说32位能表示的最长时间是68年,从1970年开始的话,加上68.1,实际最终到2038年01月19日03时14分07秒,便会到 达最大时间,过了这个时间点,所有32位操作系统时间便会变为10000000 00000000 00000000 00000000,算下来也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。

    到 这里,我想问题的答案已经显现出来了,那就是:因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的 时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作系统可以表示到 292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间已经是千亿年以后 了

    展开全文
  • 获取当前时间的前一天时间

    千次阅读 热门讨论 2018-10-29 10:36:39
    前端js获取 time = new Date(new Date().getTime() - 24 * 60 * 60 * 1000); time = time.sformat("yyyy-MM-dd hh:mm:ss"); 后端java获取 Calendar ca = Calendar....//得到个Calendar的实例...

    前端js获取

            time = new Date(new Date().getTime() - 24 * 60 * 60 * 1000);
            time = time.sformat("yyyy-MM-dd hh:mm:ss");
    

    后端java获取

            Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            ca.setTime(new Date()); //设置时间为当前时间
            ca.add(Calendar.DATE, -1);
            Date date = ca.getTime();
            messageGroupSend.setSendTime(date);
    

    两种方法选择时,我们最好选择后一种,再后端获取时间,这样永远获取的服务器的时间,不至于因为用户电脑时间的不准确,而影响业务。还有一些限制,比如输入框限制输入N个字符等等,这样的判断,我之前的习惯是放在前端,但是最好的选择是前后端都有,这样就可以防止一些“刁钻”用户去钻空子。

    展开全文
  • 判断两个时间是不是同一天

    千次阅读 2015-07-12 10:35:38
    在项目中很多时候需要判断两个时间是否是同一天,例如用户每天都能领某种福利一次且只能领取一次,这时候当用户领取福利的时就需要判断用户上次领取的时间与当前时间是不是同一天,不是同一天的话可以领取,否则不能...

            在项目中很多时候需要判断两个时间是否是同一天,例如用户每天都能领某种福利一次且只能领取一次,这时候当用户领取福利的时就需要判断用户上次领取的时间与当前时间是不是同一天,不是同一天的话可以领取,否则不能领取。

            一般来讲我会用time(NULL)来获取用户当前领取时间,它返回的是一个整数,代表从CUT(Coordinated Universal Time 格林威治时间)时间1970年1月1日00:00:00到当前时刻的秒数,正因为它是一个整数所以这样便于存储和比较。假如两个时间分别是oldtime和newtime,他们都是用time(NULL)得到的整数时间,我们想判断他们是否是同一天只需要分别求得他们的天数,然后判断是不是相等即可,即这样:

    #define SECONDSOFONEDAY (24*60*60)
    bool IsANewDay(time_t tOldTime,  time_t tNewTime)
    {
    	int iDayOld = static_cast<int>(tOldTime/SECONDSOFONEDAY);
    	int iDayNew = static_cast<int>(tNewTime/SECONDSOFONEDAY);
    	if(iDayNew > iDayOld)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }
            理论上来讲这样判断就可以了,但是仔细分析会发现这样的判断是以格林威治时间为标准的,也就是说计算的是从格林威治时间1970年1月1日00:00:00以来的第几天,但是我们实际需要计算的是对于我们当前时区来讲的第几天,所以直接用上述算法是有问题的。例如我们当前时区的时间是零点,正好是新的一天,但格林威治时间却还没到零点,这就差了一天,所以要修改算法,以当前时区来计算:

    #define SECONDSOFONEDAY (24*60*60)
    bool IsANewDay(time_t tOldTime,  time_t tNewTime)
    {
    	struct timezone tvTimeZone;
    	gettimeofday(NULL, &tvTimeZone);
    	int iTimeZoneSeconds = (-tvTimeZone.tz_minuteswest*60);
    	int iDayOld = static_cast<int>((tOldTime+iTimeZoneSeconds)/SECONDSOFONEDAY);
    	int iDayNew = static_cast<int>((tNewTime+iTimeZoneSeconds)/SECONDSOFONEDAY);
    	if(iDayNew > iDayOld)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }

            tvTimeZone.tz_minuteswest返回的是当前时区时间与格林威治时间时间差了多少分钟,所以用之前得到的秒数减去与格林威治时间相差的秒数就得到了当前时区对应的秒数,这样再除以一天的秒数就得到了正确的天数。其实有不少情况我们不想以零点来判断是否是新的一天,好比我们把凌晨5点当做分割线,凌晨5点之前是昨天,之后是新的一天,这时候再判断两个时间是不是新的一天又不一样了。其实改动也很小,只需要在原算法中加个偏移量就好了:

    #define SECONDSOFONEDAY (24*60*60)
    bool IsANewDay(time_t tOldTime,  time_t tNewTime, int iOffSetTime)
    {
    	struct timezone tvTimeZone;
    	gettimeofday(NULL, &tvTimeZone);
    	int iTimeZoneSeconds = (-tvTimeZone.tz_minuteswest*60);
    	int iDayOld = static_cast<int>((tOldTime+iTimeZoneSeconds-iOffSetTime)/SECONDSOFONEDAY);
    	int iDayNew = static_cast<int>((tNewTime+iTimeZoneSeconds-iOffSetTime)/SECONDSOFONEDAY);
    	if(iDayNew > iDayOld)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }

            例如,IsANewDay(oldtime, newtime, 5*60*60)即返回相对于凌晨五点来讲oldtime和newtime是不是新的一天,我们得到的时间本来是相对于格林威治时间1970年1月1日00:00:00的秒数(相对于零点),如果想以凌晨5点为标准的话,我们只需要计算相对于格林威治时间1970年1月1日05:00:00的秒数即可,所以把时间减去offsettime(5*60*60)就好了。



    展开全文
  • mysql当天时间和前一天时间

    千次阅读 2018-12-05 20:27:16
    一天或者前一天 :CURDATE()+1 CURDATE()-1 这是错误的写法 mysql官网也是不承认时间直接相加减的,虽然会将当前时间转换为20160802,这时候就是比较这一串字符,mysql官网是不承认用这种方式比较时间大小的 正确...
    获取当前的年月日,我使用的是 CURDATE()
    下一天或者前一天 :CURDATE()+1 CURDATE()-1 这是错误的写法
    mysql官网也是不承认时间直接相加减的,虽然会将当前时间转换为20160802,
    这时候就是比较这一串字符,mysql官网是不承认用这种方式比较时间大小的
    

    正确的sql语句

    SELECT COUNT(*) FROM USER WHERE registerDate >= CURDATE()
     AND registerDate < DATE_SUB(CURDATE(),INTERVAL -1 DAY);
    

    备注

    DATE_SUB(CURDATE(),INTERVAL -1 DAY); 表示下一天
    DATE_SUB(CURDATE(),INTERVAL 1 DAY); 表示前一天
    
    SELECT 
    NOW() "当前时间",
    CURDATE() "当天日期",
    CURTIME() "当前时间",
    DATE_SUB(CURDATE(),INTERVAL -1 DAY) "后一天日期",
    DATE_SUB(CURDATE(),INTERVAL 1 DAY) "前一天日期"
    
    展开全文
  • mysql获取当前时间,前一天,后一天

    千次阅读 2018-05-23 14:44:53
    获取时间的 后 8   function fun_submit ( arg ){ var date1 = new Date (); var xdate = date1. getFullYear () + "-" + (date1. getMonth () + 1 ) + "-" + date1. getDate (); ...
  • //计算本月第一天 Calendar firstDay=Calendar.getInstance();//获取当前时间 firstDay.set(Calendar.DAY_OF_MONTH, 1);//日期设置为一号,就是第一天了 System.out.println("firstDay:"+new SimpleDateForm
  • 结果讨论:加入注解,大部门的时间是转换正确的,但是一些特殊的时间就会出问题:比如1986-05-20 这个时间显示就有问题。 解决方法: 还是后端不直接做转换,前端有控件可以支持很好的时间转换。 直接返回上面...
  • 由于经常会再oracle中获取当月的第一天/后一天/上一天/最后一天/上个月这一天,所以整理出下面的oracle获取日期大全出来,有什么更好的建议可以留言补充一下。 日期说明 oracle语句(假设现在是2018-11-28 11:11...
  • 后台Date类型,前端显示时间一天

    千次阅读 热门讨论 2019-02-12 15:56:53
    问题描述:前端保持传时间到后台,数据库时间保存是正确的,但是,前端查询的时候得到的时间就是少一天的 解决办法: 1.当然你可以简单直接的在后端把Date类型转成String,非常的简单粗暴 2.这是由于SpringBoot中...
  • AIX下取前一天时间

    万次阅读 2015-10-19 15:32:03
    AIX的默认dtae命令是不支持-d参数的,导致大家写脚本很痛苦,没法简单取得前一天时间。 下面有简单方式可以取得: YESTERDAY=`TZ=aaa24 date +%Y%m%d` echo $YESTERDAY 或者是 #!/bin/sh T
  • 一天之内有多少次时针分针秒针回重合?分别是什么时候,说出计算方法。 学C#前后不到一个月 今天去面试第一个题目就是这个 不评最佳答案,看重处理方式 纯为交流 更多 分享到: 相关主题推荐: 面试 c# 相关...
  •  ... 网上取当月第一天和最后一天的SQL语句很多,有的是通过字符截取,有的是...但是看了下网上的运用函数来取第一天和最后一天时间的SQL语句几乎都像下面这样的,其实是存在问题的,存在一个临界值得问题。  本
  • 负责的项目中,使用的是mysql数据库,页面上要显示当天所注册人数的数量,获取当前的年月日,我使用的是 CURDATE(), 错误的sql语句  eg:SELECT COUNT(*) FROM ... 虽然 获取到的数量在测试环境中是正确的,但在...
  • 获得指定时间的下一天的N种方法

    千次阅读 2016-07-26 00:08:42
    有时候在进行日期计算的时候需要对日期进行加减,比如给定一个时间T,我们需要查找T到T+1的数据,最简单的方法就是转换成毫秒后加上一天对应的毫秒数,再转换回来,但是这样显得不够优雅,那么Java中有哪些方法可以...
  • Java 获取指定时间的前一天Date

    千次阅读 2016-04-07 21:01:41
    开发过程中需要获取指定Date时间的前一天。本来觉得挺简单的,用Calender.roll()方法回滚一天就行了,但是在测试过程中发现不对经。于是在这记录一下。代码如下:public class DateClass { public static void main...
  •  今天在用iview做前端页面开发的时候,遇到个奇葩问题(也许自己主要做后台开发,当时我还纳闷了),我在时间控件中明明选择的是2017-10-19,但是当通过vue的调试器查看的时候,竟然是这样的,如下图:  当时我...
  • 一天: 前一天转换为日期格式: 前一个月日期: 前一个月: 后一个月转换为字符串: 补充:格式化日期 获取系统日期: SYSDATE 当前日: select TRUNC(SYSDATE) from dual; 前一天: select TRUNC...
  • 简介:用户输入时间,判断这个时间是本年的多少天(例:输入2015-1-5,结果是2015年的第5); * * 要求: * 1、判断用户输入的年月日是不是合法。 * a、当用户输入的不合法时,提示重新输入。 * ...
  • 需求:在做类似于微博的android客户端的时候,要求有个定时发微薄功能,时间设置要求:初始化时间大于当前时间两分钟,设置时间不能超过十五。 解决过程:在网上找了部分参考资料,发现都不能很好的解决问题,...
  • 当我们回想往事时会不会感叹时间流逝,往事如烟,暮然回首,物是人非……额……不扯了,现在进入主题,当别人问你多大的时候,你总是会说:我22了!然后别人会说,都奔三了,结婚了没有啊,难道你会在回句,我连女...
  • 一天多少行代码才算是好程序员?   当今时代很多吃瓜群众对程序员的印象都是   而程序员的真实情况却是这样:每天大部分时间都在改代码,写代码,看代码才是我们真实的工作日常,到底每天要写多少行才是好...
  • js 给日期加一天或者减一天

    万次阅读 多人点赞 2018-06-20 15:20:34
    首先,我们创建个需要...一、加一天 dateTime=dateTime.setDate(dateTime.getDate()+1); dateTime=new Date(dateTime); 二、减一天  与上面相似,把setDate方法中的+1变更为-1   -----------------------...
  • mysql 获取日期前一天一天

    万次阅读 2017-03-22 11:20:09
    mysql获取当前时间,前一天,后一天  负责的项目中,使用的是mysql数据库,页面上要显示当天所注册人数的数量,获取当前的年月日,我使用的是 CURDATE(), 错误的sql语句  eg:SELECT COUNT(*) FROM USER WHERE ...
  • 前段时间,Google工程师RaymondFarias在社交媒体爆出他的工作量:“我的同事最近和我分享了一个调查,调查指出一名高效的谷歌工程师每天大概会写 100-150行代码。...@山雨欲来在中国,一天就100行代码?明天不...
  • # 计算两个时间时间差 def get_time_seconds(start_time, end_time): datetime.datetime.now().strptime(str(start_time), "%Y-%m-%d %H:%M:%S.%f") # start_end_time_seconds = (end_time - start_time)....
  • java中用new date()获取操作系统时间,可是操作系统的时间不一定准确,假如我有个应用是搜索前5的数据,用new date()获取时间毫秒值,然后减去5*24*60*60*1000,然后拿这个时间去数据库里搜素.但是可能数据库和应用的...
  • 方法: DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date d1 = df.parse("2004-03-26 13:31:40"); Date d2 = df.parse("2004-01-02 11:30:24"); long ...
  • 古人是如何确定的 节气的准确时间

    千次阅读 2013-07-02 11:57:42
    既然节气的准确时间不好确定,那古人是如何确定的呢,也是由星官观测再发布给民间吗? 儒略历是以个绝对时间为参考的,而节气应该是与干支是周期性的,能否利用干支和节气的周期性把累计误差规范在个甲子里,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 430,624
精华内容 172,249
关键字:

一天准确时间是多少