一、前端 moment.js 的常用方法

官网: http://momentjs.cn/

一、引入moment.js

1.Nodejs方式引入

(1)安装
npm install moment _–save _
yarn add moment # Yarn
(2)引入
// require 方式
var moment = require(‘moment’);
// import 方式
import moment from ‘moment’;

2.浏览器方式引入

二、使用

1. 使用moment.js格式化日期

moment().format('MMMM Do YYYY, h:mm:ss a'); // 七月 20日 2022, 4:25:13 下午
moment().format('dddd');                    // 星期三
moment().format("MMM Do YY");               // 7月 20日 22
moment().format('YYYY [escaped] YYYY');     // 2022 escaped 2022
moment().format('YYYY-MM-DD HH:mm:ss')        //"2022-07-20 16:46:40"
moment().format('YYYY年MM月DD日 HH时mm分ss秒') //"2022年07月20日 16时47分17秒"
moment().format('YYYY年MM月DD日 HH:mm:ss')    // "2022年07月20日 16:46:18"
moment().format('YYYY.MM.DD HH:mm:ss')        //"2022.07.20 16:47:58"

2. 相对时间

moment("20111031", "YYYYMMDD").fromNow(); // 11 年前
moment("20120620", "YYYYMMDD").fromNow(); // 10 年前
moment().startOf('day').fromNow();        // 16 小时前
moment().endOf('day').fromNow();          // 8 小时内
moment().startOf('hour').fromNow();       // 25 分钟前

3.获取/设置时间信息

moment().second() //获得 秒
moment().second(Number) //设置 秒。0 到 59
moment().minute() //获得 分
moment().minute(Number) //设置 分。0 到 59
// 类似的用法
moment().hour() // 小时
moment().date() // 一个月里的第几天
moment().day() // 星期几
moment().dayOfYear() // 一年里的第几天
moment().week() // 一年里的第几周
moment().month() // 第几个月
moment().quarter() // 一年里的第几个季度
moment().year() // 年
moment().daysInMonth() // 当前月有多少天

4.操作

moment().add(7, 'days') // 之后的第7天。第2个参数还可以是 'months', 'years' 等。注意是复数。
moment().add(7, 'd')// 与上面一行代码的运行结果一样。
moment().subtract(1, 'months') // 上个月moment().startOf('week') // 这周的第一天
moment().startOf('hour') // 等效与 moment().minutes(0).seconds(0).milliseconds(0)。
// 还支持 'year','month' 等moment().endOf('week')

5.查询

// 早于
moment('2010-10-20').isBefore('2010-10-21') // true
moment('2010-10-20').isBefore('2010-12-31', 'year') // false
moment('2010-10-20').isBefore('2011-01-01', 'year') // true// 是否相等
moment('2010-10-20').isSame('2010-10-20') // true
moment('2010-10-20').isSame('2009-12-31', 'year')  // false
moment('2010-10-20').isSame('2010-01-01', 'year')  // true// 晚于
moment('2010-10-20').isAfter('2010-10-19') // true
moment('2010-10-20').isAfter('2010-01-01', 'year') // false
moment('2010-10-20').isAfter('2009-12-31', 'year') // true// 是否在时间范围内
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25') // true
moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year') // false
moment('2010-10-20').isBetween('2009-12-31', '2012-01-01', 'year') // truemoment().isLeapYear() // 是否是闰年

二、mysql 时间函数

1. 获取当前时间

-- 返回当前日期 2022-07-20
select curdate() ;
-- 返回当前时间 16:46:41
select curtime() ;
-- 返回当前日期和时间 2022-07-20 16:47:02
select now() ;
-- 返回当前日期和时间 20220720164739
select now() + 0 ;
-- 返回日期 date 年份 2022
select year(now())
-- 返回日期 date 月份  7
select month(now()) ;
-- 返回日期 date 月份的名字 July
select monthname(now()) ;
-- 返回日期 date 为一年中的第几周 29
select week(now()) ;
-- 返回 time 的小时值 16
select hour(now()) ;
-- 返回 time 的小时值
select minute(now()) ;

2.时间变化

-- 在当前时间上增加 3 天 2022-07-23 16:55:21
select date_add(now(), interval 3 day) ;
--  在当前时间上增加 3 天  加上时间格式化 2022-07-23  SELECT   DATE_FORMAT( DATE_ADD(NOW(),INTERVAL 3 DAY) ,'%Y-%m-%d')
-- 9分钟前  加上格式化 2022-07-20 16:52:00SELECT   DATE_FORMAT( DATE_ADD(NOW(),INTERVAL-9 MINUTE) ,'%Y-%m-%d %H:%i:00')
-- 在当前时间上减少 3 天
select date_add(now(), interval -3 day) ;
-- 在当前时间上增加 1 小时
select date_add(now(), interval 1 hour);
-- 在当前时间上增加 1 分钟
select date_add(now(), interval 1 minute);
-- 在当前时间上增加 1 秒
select date_add(now(), interval 1 second);
-- 在当前时间上增加 1 微秒
select date_add(now(), interval 1 microsecond);
-- 在当前时间上增加 1 星期
select date_add(now(), interval 1 week);
-- 在当前时间上增加 1 个月
select date_add(now(), interval 1 month);
-- 在当前时间上增加 1 个季度,相当于3个月
select date_add(now(), interval 1 quarter);
-- 在当前时间上增加 1 年
select date_add(now(), interval 1 year);
//计算两个时间的天数差
select datediff(now()," 2022-07-10")//结果是:-10

3.时间格式化

select date_format(now(),"%Y/%m/%d") //  2018/05/10
select date_format(now(),'%Y-%m-%d %H') // 2022-07-20 174。
SELECT CASEWHEN WEEKDAY(NOW()-INTERVAL DAY(NOW()) DAY) = 6 THEN (DAY(NOW())+WEEKDAY(NOW()-INTERVAL DAY(NOW()) DAY)) DIV 7ELSE (DAY(NOW())+WEEKDAY(NOW()-INTERVAL DAY(NOW()) DAY)) DIV 7 + 1END week_of_month

Java时间处理

public class TimeUtil {private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式/*** 获取当前日期指定天数之后的日期.* @param num   相隔天数* @return Date 日期* @since 1.0*/public static Date nextDay(int num) {Calendar curr = Calendar.getInstance();curr.set(Calendar.DAY_OF_MONTH, curr.get(Calendar.DAY_OF_MONTH) + num);return curr.getTime();}/*** 获取当前时间的10位时间戳* @return*/public static String getTimestamp(){return String.valueOf(System.currentTimeMillis() / 1000);}/*** 获取当前时间 按指定格式来 yyyy-MM-dd HH:mm:ss* @return*/public  static  String getTime(){Date now = new Date();String time = sdf.format(now);return time;}/*** date转String 按指定格式来 yyyy-MM-dd HH:mm:ss* @return*/public  static  String getAttrTime(Date date){String time = sdf.format(date);return time;}/*** 时间戳转String 按指定格式来 yyyy-MM-dd HH:mm:ss 13位时间戳* @return*/public  static  String getLongTime(long stamp){String time = sdf.format(new Date(stamp));return time;}/*** 时间戳转String 按指定格式来 yyyy-MM-dd HH:mm:ss* @return*/public  static  String getAttrLongTime(long stamp){long longTime = stamp * 1000;String time = sdf.format(new Date(longTime));return time;}/*** 校验时间是否是小于现在时间 处于合理范围内* @param createTime 时间* @param dayNum 天数* @return*/public static boolean checkDateTime(Date createTime,long dayNum){Date date1 = new Date();if(null==createTime){createTime = date1;}long day=(date1.getTime()-createTime.getTime())/(24*60*60*1000);if(day <= dayNum){return true;}return false;}/*** 校验时间 并获取分钟差异的时间* @param dateTime 时间* @param minuteTime 差异分钟数 -5 5分钟之前的时间* @return*/public static String checkVipOrderTimeStamp(String dateTime,Integer minuteTime){if(NullUtils.isNullString(dateTime)){return getMinuteTimeStamp(minuteTime);}else{try {sdf.parse(dateTime);//检测} catch (ParseException e) {e.printStackTrace();return getMinuteTimeStamp(minuteTime);}}return dateTime;}/*** 获取分钟差异的时间* @param minuteTime 差异分钟数 -5 5分钟之前的时间* @return*/public static String getMinuteTimeStamp(Integer minuteTime){//获取当前时间的前5分钟时间Calendar beforeTime = Calendar.getInstance();beforeTime.add(Calendar.MINUTE, minuteTime);Date date = beforeTime.getTime();String time = sdf.format(date);
//        System.out.println(time);return time;}/*** 查询唯代购品牌是否满足时间条件 必须大于多少天才能入库* @param dateEnd  标准格式 yyyy-MM-dd HH:mm:ss 品牌结束时间* @param day 时间 必须大于多少时间* @return* @throws ParseException*/public static boolean getVdgBrandSellTime(String dateEnd,long day) {if(NullUtils.isNullString(dateEnd)){return  false;}try{Date d1 = sdf.parse(dateEnd);//转Date
//            Date d2 = sdf.parse(dateStart);//转DateDate d2 = new Date();//转Datelong diff = d1.getTime() - d2.getTime();//这样得到的差值是毫秒级别long days = diff / (1000 * 60 * 60 * 24);
//            long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
            long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
//            System.out.println(""+days+"天"+hours+"小时"+minutes+"分");if(days >= day){return true;}}catch (Exception e){e.printStackTrace();}return  false;}/*** 校验时间天数* @param d1  标准格式 yyyy-MM-dd HH:mm:ss 时间* @param day 时间 必须大于多少时间* @return*/public static boolean ckeckDayTime(Date d1,long day) {try{Date d2 = new Date();//转Datelong diff = d2.getTime() - d1.getTime();//这样得到的差值是毫秒级别long days = diff / (1000 * 60 * 60 * 24);
//            long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
//            long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
//            System.out.println(""+days+"天"+hours+"小时"+minutes+"分");if(days >= day){return true;}}catch (Exception e){e.printStackTrace();}return  false;}/*** long时间戳装换为Date* @param stamp* @return*/public  static  Date getDateByLongTime(long stamp){long longTime = stamp * 1000;return new Date(longTime);}/*** 获取当前时间之前或之后几小时 hour* @param hour* @return*/public static String getTimeByHour(int hour) {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + hour);return sdf.format(calendar.getTime());}/*** 求出两个时间的时间差* @param stardateStr* @param enddateStr* @return*/public static boolean getDateStr(String stardateStr,String enddateStr){SimpleDateFormat dff = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);//输入的被转化的时间格式Date date1 = new Date();Date date2 = date1;if(null!=stardateStr){try {date1 = dff.parse(stardateStr);} catch (ParseException e) {//                date1 = new Date();}}if(null!=enddateStr){try {date2 = dff.parse(enddateStr);} catch (ParseException e) {//              date2 = new Date();}}else{//          Calendar c = Calendar.getInstance();
//          c.setTime(date1);
//          c.add(Calendar.DAY_OF_MONTH, 1);
//          date2 = c.getTime();}long day=(date2.getTime()-date1.getTime())/(24*60*60*1000);
//        System.out.println(day);if(day<=2 && day>0){return true;}return false;}/*** 2019-08-29T08:41:25.367Z 装换为 Date格式 yyyy-MM-dd HH:mm:ss* @param dateStr* @return* @throws ParseException*/public static String getDateStr(String dateStr){SimpleDateFormat dff = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);//输入的被转化的时间格式Date date1 = null;try {date1 = dff.parse(dateStr);} catch (ParseException e) {date1 = new Date();}String str1 = dff.format(date1);return str1;}/*** 获取当前时间 Date格式 yyyy-MM-dd  自定义* @param dayNum  时间 1明天 -1昨天* @return* @throws ParseException*/public static String getCustomDateStr(Integer dayNum){SimpleDateFormat dff = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);//输入的被转化的时间格式Date today = new Date();Date date1 = null;try {Calendar c = Calendar.getInstance();c.setTime(today);c.add(Calendar.DAY_OF_MONTH, dayNum);date1 = c.getTime();} catch (Exception e) {date1 = today;}String str1 = dff.format(date1);return str1;}public static String getDateStrDxie(String dateStr) throws ParseException {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");Date date = formatter.parse(dateStr);SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String sDate=sdf.format(date);return  sDate;}/***  获取Date时间* @param dateStr* @return*/public static Date getDate(String dateStr) {try {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date parse = sdf.parse(dateStr);return  parse;} catch (ParseException e) {}return new Date();}/*** 检查 中文时间格式是否正确* @param dateStr* @return* @throws ParseException*/public static String ckeckStringDate(String dateStr) throws ParseException {Date parse = sdf.parse(dateStr);//转DateString sDate=sdf.format(parse);//转String 标准格式 yyyy-MM-dd HH:mm:ssreturn  sDate;}}
  private static final char SEPARATOR = '_';/*** 驼峰命名法工具* @return*       toCamelCase("hello_world") == "helloWorld"*       toCapitalizeCamelCase("hello_world") == "HelloWorld"*         toUnderScoreCase("helloWorld") = "hello_world"*/public static String toCamelCase(String s) {if (s == null) {return null;}s = s.toLowerCase();StringBuilder sb = new StringBuilder(s.length());boolean upperCase = false;for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c == SEPARATOR) {upperCase = true;} else if (upperCase) {sb.append(Character.toUpperCase(c));upperCase = false;} else {sb.append(c);}}return sb.toString();}/*** 驼峰命名法工具* @return*         toCamelCase("hello_world") == "helloWorld" *      toCapitalizeCamelCase("hello_world") == "HelloWorld"*         toUnderScoreCase("helloWorld") = "hello_world"*/public static String toCapitalizeCamelCase(String s) {if (s == null) {return null;}s = toCamelCase(s);return s.substring(0, 1).toUpperCase() + s.substring(1);}/*** 下划线转驼峰命名*/public static String toUnderScoreCase(String s){if (s == null){return null;}StringBuilder sb = new StringBuilder();boolean upperCase = false;for (int i = 0; i < s.length(); i++){char c = s.charAt(i);boolean nextUpperCase = true;if (i < (s.length() - 1)){nextUpperCase = Character.isUpperCase(s.charAt(i + 1));}if ((i > 0) && Character.isUpperCase(c)){if (!upperCase || !nextUpperCase){sb.append(SEPARATOR);}upperCase = true;}else{upperCase = false;}sb.append(Character.toLowerCase(c));}return sb.toString();}

//图片处理

/*** 依据url 获取 base64的商品图片数组* @param urls* @return*/public static  LinkedList<String> getImagesToBase64ByOnlineNew(List<String> urls){if(NullUtils.isNotNullList(urls)){LinkedList<String> base64Pics = new LinkedList<>();//base64商品图集合for (String url : urls) {try{String s = Base64ImgUtil.ImageToBase64ByOnlineNew(url);base64Pics.add(s);}catch (Exception e){e.printStackTrace();}}return base64Pics;}return null;}

前后端、数据库时间格式化方法相关推荐

  1. 原生js时间格式化方法封装

    原生js时间格式化方法封装 创建formatDate函数,传入date(时间)和format(格式)两个参数,简单判断format返回相应格式的时间 注意:getMonth()方法获取到的月份会比实际 ...

  2. Vue.js+Node.js+MySQL的前后端+数据库系统结构

    前言: 大三暑假回国实习, 经过了1个月时间的培训学习, 本人渐渐熟悉了实习的工作环境和节奏. 由于我所在的前端APP研发部门使用的是Vue.js框架, 因此我在被分配**[公司官方网站的重制]**任 ...

  3. 关于前端 后端 数据库 时间的设置与传递

    Java时间日期格式转换Date转String和String转Date - Sharpest - 博客园 (cnblogs.com) java和mysql之间的时间日期类型传递 - GaoAnLee ...

  4. lua 差值 日期_Lua获取系统时间和时间格式化方法及格式化参数

    一.系统当前时间对应的时间戳 local ntime = os.time print(ntime) 二.格式化时间显示,参考下表 常用于设置header等 ngx.header["Last- ...

  5. 前后端整合---js对象方法---异步组件

    a={b:function(){console.log("b")}} {b: ƒ} a.b ƒ (){console.log("b")} a.b() b a={ ...

  6. 前后端传递时间参数偶遇参数类型转换异常

    org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert val ...

  7. tp5配置前后端模板路径的方法

    1.在index.php文件中加入代码 // 自动生成admin模块 \think\Build::module('admin'); 在生成如下文件及文件夹时删除代码 2.新建视图文件夹 3.打开配置文 ...

  8. 时间格式化方法,输出格式:2019-06-20 11:30:50

    formatDateTime(date){let y = date.getFullYear();let m = date.getMonth() + 1;m = m < 10 ? ('0' + m ...

  9. miniUI时间格式化方法

    mini.formatDate(new Date(),'yyyy-MM-dd HH:mm:ss'); 需要其他格式的可以将yyyy-MM-dd HH:mm:ss部分进行修改!

  10. SpringBoot时间格式化的5种方法!

    作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 在我们日常工作中,时间格式化是一件经常遇到的事儿,所以本文我们就来盘点一下 Spr ...

最新文章

  1. 使用 mkdocs 搭建个人 wiki 站点
  2. mysqldump 导入数据库可能遇到错误
  3. redis在容器里连接不上_Redis服务器被劫持风波,服务器相关知识共享学习
  4. Spring Cloud Gateway 入门
  5. 架设httpd服务器
  6. boost::hana::adjust_if用法的测试程序
  7. 阿里高级技术专家至简: Service Mesh 在超大规模场景下的落地挑战
  8. scala学习-11-package object
  9. 在CentOS6中安装Docker(新服务器不推荐)
  10. 数据量太大?用数据库水平切分搞定!
  11. CSS3属性calc函数(CSS3)
  12. 二叉树类图_数据结构(十四)——二叉树
  13. 枚举报错   Syntax error on token enum, interface expected
  14. Chrome版本下载
  15. 计算机模块中的画板英文,电脑中将画板导入Mockingbot的方法
  16. lamp一键安装包不安装mysql_lamp一键安装包的一些注意点
  17. 硕士研究生计算机专业录取分数线,全国所计算机研究生录取分数线.doc
  18. Opencv批量修改图片尺寸并保存
  19. matlab做混频,基于MATLAB的混频测试
  20. 姜小白的Python日记Day12 迭代器与内置函数

热门文章

  1. UVA12304-2D Geometry 110 in 1!
  2. c语言自动任务,【C语言训练】委派任务* (C语言代码)
  3. MP2888AGU-0030-Z 烧录
  4. 实现multi()函数,参数个数不限,返回所有参数的乘积
  5. Android极光推送jPush混淆时出错的解决方案 Stack size becomes negative after instruction [247] swap in [cn/jiguang/s
  6. 路由器:什么是软路由,看完本篇文章你就懂了
  7. 【工控老马】力控7.0与S7-200SMART的驱动连接
  8. 高斯拉盖尔(Gauss-Laguerre)法则求积分(python,数值积分)
  9. Mac-记录一些超好用的快捷键
  10. 独立于计算机系统的是 用户模式,2019年12月网络教育统考《计算机应用基础》复习题(十三)...