精华内容
下载资源
问答
  • 获取当前时间的前一天时间

    千次阅读 热门讨论 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-05-23 14:44:53
    获取时间的 后 8   function fun_submit ( arg ){ var date1 = new Date (); var xdate = date1. getFullYear () + "-" + (date1. getMonth () + 1 ) + "-" + date1. getDate (); ...

    原文  ---------> https://blog.csdn.net/csdn_ds/article/details/71728164

     

     

    负责的项目中,使用的是mysql数据库,页面上要显示当天所注册人数的数量,获取当前的年月日,我使用的是 CURDATE(),

    错误的sql语句

      eg:SELECT COUNT(*) FROM USER WHERE registerDate >= CURDATE() AND registerDate < CURDATE()+1;

      虽然 获取到的数量在测试环境中是正确的,但在发布到线上的时候,发现有的时候数据是查询不到,数量为0,因此,就上网查询是不是CURDATE()+1不规范,发现mysql官网也是不承认时间直接相加减的,虽然会将当前时间转换为20160802,这时候就是比较这一串字符,mysql官网是不承认用这种方式比较时间大小的,因此:

    正确的sql语句

      eg:SELECT COUNT(*) FROM USER WHERE registerDate >= CURDATE() AND registerDate < DATE_SUB(CURDATE(),INTERVAL -1 DAY);
    此时,就用到了DATE_SUB()这个函数,用法举例:

      

    今天是2016年08月01日。

    date_sub('2016-08-01',interval 1 day) 表示 2016-07-31
    date_sub('2016-08-01',interval 0 day) 表示 2016-08-01
    date_sub('2016-08-01',interval -1 day) 表示 2016-08-02

    date_sub(curdate(),interval 1 day) 表示 2016-07-31
    date_sub(curdate(),interval -1 day) 2016-08-02
    date_sub(curdate(),interval 1 month) 表示 2016-07-01
    date_sub(curdate(),interval -1 month) 表示 2016-09-01
    date_sub(curdate(),interval 1 year) 表示 2015-08-01
    date_sub(curdate(),interval -1 year) 表示 2017-08-01

     

    • 显示当前日期: SELECT DATE_FORMAT(NOW(),’%b %d %Y %h:%i %p’);
    • 显示当前日期的年月日:SELECT DATE_FORMAT(NOW(),’%Y-%m-%d’);
    • W3Cshcool中关于  mysql中函数的讲解   http://www.w3school.com.cn/sql/sql_dates.asp

     

    DATE()提取日期或日期/时间表达式的日期部分
    EXTRACT()返回日期/时间按的单独部分
    DATE_ADD()给日期添加指定的时间间隔
    DATE_SUB()从日期减去指定的时间间隔
    DATEDIFF()返回两个日期之间的天数
    DATE_FORMAT()用不同的格式显示日期/时间

     

     

     

    备注:

     

    SELECT NOW(),CURDATE(),CURTIME()

    结果类似:

    NOW()CURDATE()CURTIME()
    2016-08-01 16:25:462016-08-0116:25:46

    js中如果显示的是毫秒数或者不规则的时间可以先将时间转化一下

     function formateDate(str){
                var  datenow=new Date(str);
                var xdate=datenow.getFullYear()+"-"+(datenow.getMonth()+1)+"-"+datenow.getDate();
                return xdate;

       }

    获取一个时间的  后  8天

     

    function fun_submit(arg){

    var date1 = new Date();

    var xdate=date1.getFullYear()+"-"+(date1.getMonth()+1)+"-"+date1.getDate();

    Date.parse(xdate.replace());

    var date2 = new Date(date1);

    date2.setDate(date1.getDate()+8);

    var times = date2.getFullYear()+"-"+(date2.getMonth()+1)+"-"+date2.getDate();

    alert(times);

    }

     

     

     

     

     

     

     

    展开全文
  • 结果讨论:加入注解,大部门的时间是转换正确的,但是一些特殊的时间就会出问题:比如1986-05-20 这个时间显示就有问题。 解决方法: 还是后端不直接做转换,前端有控件可以支持很好的时间转换。 直接返回上面...

     不正常的显示:

    正常的显示:

    代码研究:

     结果讨论:加入注解,大部门的时间是转换正确的,但是一些特殊的时间就会出问题:比如1986-05-20  这个时间显示就有问题。

    解决方法:

    还是后端不直接做转换,前端有控件可以支持很好的时间转换。

    直接返回上面的格式给前端就好。

     

    注解可以改成下面的试试:

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

     

     

    展开全文
  • 一天之内有多少次时针分针秒针回重合?分别是什么时候,说出计算方法。 学C#前后不到一个月 今天去面试第一个题目就是这个 不评最佳答案,看重处理方式 纯为交流 更多 分享到: 相关主题推荐: 面试 c# 相关...
  • 使用elementUI的时间选择控件el-date-picker后,作为参数上传到后台接收,发现后台时间比前台时间一天。 前台代码: <el-form-item label="时间"> <el-date-picker v-model="params.createTimeFrom" ...
  • iview(DatePicker)时间转入后台少一天 解决方案 后台注解 前台: 加个事件 @on-change @on-change="getStartTime" getStartTime(starTime) { this.leaveRecord.pDate = starTime; ...
  • C语言实现时间的加一天或者减一天

    千次阅读 2016-03-31 12:15:43
    转换思路利用time_t类型来进行时间的换算。   #include #include #include #include #include   using std::string; #pragma  warning(disable:4996) int main() {  string _...
  • 由于经常会再oracle中获取当月的第一天/后一天/上一天/最后一天/上个月这一天,所以整理出下面的oracle获取日期大全出来,有什么更好的建议可以留言补充一下。 日期说明 oracle语句(假设现在是2018-11-28 11:11...
  • 后台Date类型,前端显示时间一天

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

    千次阅读 2018-12-05 20:27:16
    一天或者前一天 :CURDATE()+1 CURDATE()-1 这是错误的写法 mysql官网也是不承认时间直接相加减的,虽然会将当前时间转换为20160802,这时候就是比较这一串字符,mysql官网是不承认用这种方式比较时间大小的 正确...
  • 负责的项目中,使用的是mysql数据库,页面上要显示当天所注册人数的数量,获取当前的年月日,我使用的是 CURDATE(), 错误的sql语句  eg:SELECT COUNT(*) FROM ... 虽然 获取到的数量在测试环境中是正确的,但在...
  • 获得指定时间的下一天的N种方法

    千次阅读 2016-07-26 00:08:42
    有时候在进行日期计算的时候需要对日期进行加减,比如给定一个时间T,我们需要查找T到T+1的数据,最简单的方法就是转换成毫秒后加上一天对应的毫秒数,再转换回来,但是这样显得不够优雅,那么Java中有哪些方法可以...
  •  今天在用iview做前端页面开发的时候,遇到个奇葩问题(也许自己主要做后台开发,当时我还纳闷了),我在时间控件中明明选择的是2017-10-19,但是当通过vue的调试器查看的时候,竟然是这样的,如下图:  当时我...
  • 一天多少行代码才算是好程序员?   当今时代很多吃瓜群众对程序员的印象都是   而程序员的真实情况却是这样:每天大部分时间都在改代码,写代码,看代码才是我们真实的工作日常,到底每天要写多少行才是好...
  • # 计算两个时间时间差 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)....
  • 当我们回想往事时会不会感叹时间流逝,往事如烟,暮然回首,物是人非……额……不扯了,现在进入主题,当别人问你多大的时候,你总是会说:我22了!然后别人会说,都奔三了,结婚了没有啊,难道你会在回句,我连女...
  • //计算本月第一天 Calendar firstDay=Calendar.getInstance();//获取当前时间 firstDay.set(Calendar.DAY_OF_MONTH, 1);//日期设置为一号,就是第一天了 System.out.println("firstDay:"+new SimpleDateForm
  • dump( date( 'Y-m-d', strtotime('2018-10-1 +1 day') ) ); dump( date( 'Y-m-d', strtotime('2018-10-1 +1 week') ) ); dump( date( 'Y-m-d', strtotime('2018-10-1 +1 month') ) ); dump( date( 'Y-m-d', strto...
  • 前段时间,Google工程师RaymondFarias在社交媒体爆出他的工作量:“我的同事最近和我分享了一个调查,调查指出一名高效的谷歌工程师每天大概会写 100-150行代码。...@山雨欲来在中国,一天就100行代码?明天不...
  • AIX下取前一天时间

    万次阅读 2015-10-19 15:32:03
    AIX的默认dtae命令是不支持-d参数的,导致大家写脚本很痛苦,没法简单取得前一天时间。 下面有简单方式可以取得: YESTERDAY=`TZ=aaa24 date +%Y%m%d` echo $YESTERDAY 或者是 #!/bin/sh T
  • Java 获取指定时间的前一天Date

    千次阅读 2016-04-07 21:01:41
    开发过程中需要获取指定Date时间的前一天。本来觉得挺简单的,用Calender.roll()方法回滚一天就行了,但是在测试过程中发现不对经。于是在这记录一下。代码如下:public class DateClass { public static void main...
  • js 给日期加一天或者减一天

    万次阅读 多人点赞 2018-06-20 15:20:34
    首先,我们创建个需要...一、加一天 dateTime=dateTime.setDate(dateTime.getDate()+1); dateTime=new Date(dateTime); 二、减一天  与上面相似,把setDate方法中的+1变更为-1   -----------------------...
  •  ... 网上取当月第一天和最后一天的SQL语句很多,有的是通过字符截取,有的是...但是看了下网上的运用函数来取第一天和最后一天时间的SQL语句几乎都像下面这样的,其实是存在问题的,存在一个临界值得问题。  本
  • 一天真的等于24小时吗?

    千次阅读 2019-01-16 15:48:16
    (如果从更严谨的角度来看,其实一天也并不等于24小时,或大或小。但这不在本文的讨论范围内)首先阐述这个背景,其实是与今天要说的主题是有关的。我想从另外的角度来说说:一天不等于24小时! 二  大家都知道,...
  • 没有考虑第一天最后1秒到第2天第1秒,其实也是过了一天的情况function dateDiff(sDate, eDate){ const y = Math.abs(eDate.getFullYear() - sDate.getFullYear()); const m = Math.abs(eDate.getMonth() - sDate.g
  • mysql 获取日期前一天一天

    万次阅读 2017-03-22 11:20:09
    mysql获取当前时间,前一天,后一天  负责的项目中,使用的是mysql数据库,页面上要显示当天所注册人数的数量,获取当前的年月日,我使用的是 CURDATE(), 错误的sql语句  eg:SELECT COUNT(*) FROM USER WHERE ...
  • 方法: 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 ...
  • 参考:上篇文章 因为电子钟表,表针的跳动不是连续的,譬如分钟每次跳动6度,时针每次跳动0.5度。而编写程序时变量h小时,m分钟每次增量为1,所以我们设夹角gap为(-6~6之间)。这样带来另个问题,次重合接近...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 427,920
精华内容 171,168
关键字:

一天的准确时间是多少