JavaScript时间工具类

/**
 * JavaScript日期工具类
 * @author ZhangLp
 */

/**
 * 获取当前月的第一天
 */
function getCurrentMonthFirst(){
 var date=new Date();
 date.setDate(1);
 return date;
}
/**
 * 获取当前月的最后一天
 */
function getCurrentMonthLast(){
 var date=new Date();
 var currentMonth=date.getMonth();
 var nextMonth=++currentMonth;
 var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
 var oneDay=1000*60*60*24;
 return new Date(nextMonthFirstDay-oneDay);
}
/**
 * 获取上个月的第一天
 */
function lastMonthFirst(){
    return new Date(getCurrentMonthFirst().setMonth(getCurrentMonthFirst().getMonth()-1));
}
/**
 * 获取上个月最后一天
 * @return
 */
function lastMonthLast(){
    return new Date(getCurrentMonthFirst().setDate(getCurrentMonthFirst().getDate()-1));
}
/**
 * 获取上上个月的第一天
 */
function lastLastMonthFirst(){
    return new Date(lastMonthFirst().setMonth(lastMonthFirst().getMonth()-1));
}
/**
 * 获取上上个月最后一天
 * @return
 */
function lastLastMonthLast(){
    return new Date(lastMonthFirst().setDate(lastMonthFirst().getDate()-1));
}
/**
 * 上N个月的第一天(N为变量)
 * 获取当前月之前倒退到第n个月的第一天(例如现在是10月12号,n=2,beforeNMonthFirst(2)意思是获取上上个月的第一天)
 */
function beforeNMonthFirst(N){
    var forCurrMonthFirst = getCurrentMonthFirst();
    for(var i=0;i<N;i++){
        forCurrMonthFirst=new Date(forCurrMonthFirst.setMonth(forCurrMonthFirst.getMonth()-1));
    }
    return forCurrMonthFirst;
}
/**
 * 上N个月的最后一天(N为变量)
 * 获取当前月之前倒退到第n个月的最后一天(例如现在是10月12号,n=2,beforeNMonthFirst(2)意思是获取上上个月的最后一天)
 * @return
 */
function beforeNMonthLast(N){
    //获取n-1个月前的第一天
    var M = parseInt(N - 1);
    var forCurrMonthFirst = getCurrentMonthFirst();
    for(var i=0;i<M;i++){
        forCurrMonthFirst=new Date(forCurrMonthFirst.setMonth(forCurrMonthFirst.getMonth()-1));
    }
    return  new Date(forCurrMonthFirst.setDate(forCurrMonthFirst.getDate()-1));;
}
/**
 * @description 对Date的扩展,将 Date 转化为指定格式的String
 *                 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
 *                 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
 *                 例子:
 *                 (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
 *                (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
 * @param fmt
 * @return
 */
Date.prototype.Format = function(fmt) { //author: meizz
    var o = {
        "M+" : this.getMonth() + 1, //月份
        "d+" : this.getDate(), //日
        "h+" : this.getHours(), //小时
        "m+" : this.getMinutes(), //分
        "s+" : this.getSeconds(), //秒
        "q+" : Math.floor((this.getMonth() + 3) / 3), //季度
        "S" : this.getMilliseconds()
    //毫秒
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "")
                .substr(4 - RegExp.$1.length));
    for ( var k in o)
        if (new RegExp("(" + k + ")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k])
                    : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}
/**
 * 获取前X天或者后X天
 * @param AddDayCount
 * @demo 今天:GetDateStr(0)    明天:GetDateStr(1)  昨天:GetDateStr(-1)  其它的以此类推
 */
function GetDateStr(AddDayCount) {
    var dd = new Date();
    dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
    var y = dd.getFullYear();
    var m = dd.getMonth()+1;//获取当前月份的日期
    var d = dd.getDate();
    return y+"-"+m+"-"+d;
}

//。。。持续补充更新中。。。
时间: 2024-10-13 09:24:24

JavaScript时间工具类的相关文章

Java日期工具类,Java时间工具类,Java时间格式化

Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright  蕃薯耀 2017年2月4日 15:03:27 星期六 http://www.cnblogs.co

超详细的Java时间工具类

package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Gregori

nodejs时间工具类

/** * * @fmt 格式化字符串 * @Date 为需要格式化的日期 * * 示例:format(new Date(),'yyyy-MM-dd hh:mm:ss'); * 返回值为字符串 */ function dateFormat (date,fmt) { var o = { "M+": date.getMonth() + 1, //月份 "d+": date.getDate(), //日 "h+": date.getHours(), /

为大家提供一个好的时间工具类DateTime

此类的灵感来源于C# 尽管网上有什么date4j,可是jar太纠结了.先给出源代码,能够继承到自己的util包中.作为一个资深程序猿,我相信都有不少好的util工具类,我也希望经过此次分享,能带动技术大牛们能分享出自己的好用的工具类. 先看源代码 /* * 岸思科技开发平台(JAVA) SDK * * Copyright (c) 2014, Ansitech Network Technology Co.,Ltd All rights reserved. * http://www.ansitech

计算时间工具类

package com.dosion.shop.common.core.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /*** * 日期工具类 * * @author damao * */ public class DateAndTimeUtil { /*** * 日期月份减一个月 * * @pa

日期时间工具类

1. 日期格式工具类: package com.ant.jdk8.lang; import org.apache.commons.lang3.time.DateFormatUtils; import java.util.Date; /** * @author wangll * @date 2018/7/17 */ public class DateFormatDemo { public static void main(String[] args) { System.out.println(Da

Java 时间工具类

1 package com.xm.utils; 2 3 import java.text.DateFormat; 4 import java.text.SimpleDateFormat; 5 import java.util.Calendar; 6 import java.util.Date; 7 import java.util.GregorianCalendar; 8 import java.util.Locale; 9 import java.util.TimeZone; 10 11 /*

JDK8时间工具类

JDK8添加了java.time包,提供了很多方便.用得比较多的几个类:Instant 在时间线上模拟单个瞬时点Duration 以秒和纳秒为单位模拟一个数量或时间量.可以使用其他基于持续时间的单位访问它,例如分钟和小时LocalDate 表示ISO-8601日历系统中没有时区的日期,例如 2019-03-31LocalTime 表示ISO-8601日历系统中没有时区的时间,例如 16:50:30LocalDateTime 表示ISO-8601日历系统中没有时区的日期时间,例如 2019-03-

JAVA时间工具类用法

1.获得N天前的TIMESTAMP 1 Calendar cl = Calendar.getInstance(); 2 cl.add(Calendar.DAY_OF_YEAR, -7); 3 Date date = cl.getTime(); 4 long time = date.getTime(); 5 Timestamp timestamp = new Timestamp(time); 2.程序启动当前时间和任务执行既定时间 1 /* 2 delegate time 3 */ 4 Strin