js时间戳转换日期格式和日期计算
一、时间戳转换日期
function formatDate(datetime) {
// 获取年月日时分秒值 slice(-2)过滤掉大于10日期前面的0
var year = datetime.getFullYear(),
month = ("0" + (datetime.getMonth() + 1)).slice(-2),
date = ("0" + datetime.getDate()).slice(-2),
hour = ("0" + datetime.getHours()).slice(-2),
minute = ("0" + datetime.getMinutes()).slice(-2),
second = ("0" + datetime.getSeconds()).slice(-2);
// 拼接
var result = year + "-"+ month +"-"+ date +" "+ hour +":"+ minute +":" + second;
// 返回
return result;
} var date = new Date();
console.log(formatDate(date)); // 2018-05-26 23:09:26
二、合同日期计算
根据开始日期和期限,计算结束日期
//date: 日期字符串yyyy-MM-dd,如:2016-02-14
//years:年份,正整数字符串
//返回日期字符串yyyy-MM-dd,如:2016-02-14
function dateAddYear(date, years) {
var now = new Date(date);
var intYear = now.getFullYear() + parseInt(years);
var intMonth = now.getMonth() + 1; //正常的月份,
var intDay = now.getDate() - 1; //日期-1
if (intDay == 0) {
intMonth--; //减少一个月
if (intMonth == 0) {
intYear--; //0:减少一年
intMonth = 12;
intDay = 31;
}
else if (intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) {
intDay = 30; //4,6,9,11:30天
}
else if (intMonth == 2) {
intDay = 28; //2:28/29
if (intYear % 4 == 0) {
intDay = 29;
}
} else {
intDay = 31; //1,3,5,7,8,10,12 :31天
}
} var strMonth = (intMonth) < 10 ? "0" + (intMonth).toString() : (intMonth).toString();
var strDay = (intDay) < 10 ? "0" + (intDay).toString() : (intDay).toString();
var strEndDate = intYear + "-" + strMonth + "-" + strDay;
return strEndDate;
} console.log(dateAddYear('2018-6-10','2')); // 2020-06-09
三、根据开始日期,计算count天过后的日期
beginDate是开始日期,字符串格式
count是指多少天,整型数
注意:setDate和getDate结合使用
date.setDate(date.getDate() + count);
function calculateDate(beginDate,count){
var date = new Date(beginDate);
date.setDate(date.getDate() + count);
var year = date.getFullYear();
var month = ("0" + (date.getMonth()+1)).slice(-2);
var day = ("0" + date.getDate()).slice(-2);
var hours = ("0" + date.getHours()).slice(-2);
var minute = ("0" + date.getMinutes()).slice(-2);
var second = ("0" + date.getSeconds()).slice(-2); var endDate = year + "-"+ month +"-"+ day +" "+ hours +":"+ minute +":" + second; return endDate;
} console.log(calculateDate('2018-5-26 23:50:32',30)); // 2018-06-25 23:50:32
四、计算n月之后的日期
function addMonth(date,monthNum){
var str = date.split('-');
var day = parseInt(str[2]);
var nextMonth = new Date( str[0], parseInt(str[1])+monthNum, 0);
var max = nextMonth.getDate();
endDate = new Date( str[0],str[1]-1+monthNum,day>max? max: day );
return endDate.toLocaleDateString().match(/\d+/g).join('-');
} console.log(addMonth("2018-12-12",12));
function addMonth(date,monthNum){ var str = date.split('-');
var oldDate = new Date(str[0], parseInt(str[1]), 0);
var oldDay = oldDate.getDate();
console.log(oldDay);
var day = parseInt(str[2]);
var nextMonth = new Date( str[0], parseInt(str[1])+monthNum, 0);
var max = nextMonth.getDate();
if(day >28 && day < 31){
max = max - (oldDay - day);
console.log(max);
}
endDate = new Date( str[0],str[1]-1+monthNum,day>max? max: day );
return endDate.toLocaleDateString().match(/\d+/g).join('-');
} console.log(addMonth("2018-1-27",1));
五、常用的Date对象方法
- Date() 返回当日的日期和时间。
- getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
- getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
- getMonth() 从 Date 对象返回月份 (0 ~ 11)。
- getFullYear() 从 Date 对象以四位数字返回年份。
- getYear() 请使用 getFullYear() 方法代替。
- getHours() 返回 Date 对象的小时 (0 ~ 23)。
- getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
- getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
- getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
- getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
- getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
- getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
- getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
- getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
- getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
- getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
- getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
- getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
- getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
- parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
- setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
- setMonth() 设置 Date 对象中月份 (0 ~ 11)。
- setFullYear() 设置 Date 对象中的年份(四位数字)。
- setYear() 请使用 setFullYear() 方法代替。
- setHours() 设置 Date 对象中的小时 (0 ~ 23)。
- setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
- setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
- setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
- setTime() 以毫秒设置 Date 对象。
- setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
- setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
- setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
- setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
- setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
- setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
- setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
- toSource() 返回该对象的源代码。
- toString() 把 Date 对象转换为字符串。
- toTimeString() 把 Date 对象的时间部分转换为字符串。
- toDateString() 把 Date 对象的日期部分转换为字符串。
- toGMTString() 请使用 toUTCString() 方法代替。
- toUTCString() 根据世界时,把 Date 对象转换为字符串。
- toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
- toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
- toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
- UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
- valueOf() 返回 Date 对象的原始值。
js时间戳转换日期格式和日期计算的更多相关文章
- js 时间戳转特定格式的日期
var Tools = {}; Tools.formatDate = function (fmt,timestamp) { if(timestamp){ var date = new Date(par ...
- js时间戳转换日期
//js时间戳转换日期function formatDate(now) { var year=now.getFullYear(); var month=now.getMonth()+1; var da ...
- js时间戳和时间格式之间的转换
//时间戳转换成日期时间2014-8-8 下午11:40:20 function formatDate(ns){ return new Date(parseInt(ns) * 1000).toLoca ...
- AngularJS过滤器filter-时间日期格式-渲染日期格式-$filter
今天遇到了这些问题索性就 写篇文章吧 话不多说直接上栗子 不管任何是HTML格式还是JS格式必须要在 controller 里面写 // new Date() 获取当前时间 yyyy-MM-ddd ...
- js日期格式,日期对象
以对象为基准去使用方法, 围绕Date对象 var a = new Date() 返回当前的时间对象,可以使用内置的日期对象的方法 a.getFullYear(), a.getMonth(), a.g ...
- js 时间戳转换成时间格式,可自定义格式
由于 c# 通过ajax获取的时间 传到前台 格式为:/Date(1354116249000)/ 所以需要转换一下,想要什么格式 更改 format() 里的 返回语句 就可以了 formatDate ...
- JS如何将CST格式的日期转换为制定格式String
<html> <body> <script type="text/javascript"> var d = new Date() dateFor ...
- JS时间戳转换成时间格式
TimeNow: function (val) { var date = new Date(val); var Y = date.getFullYear(); var m = date.getMont ...
- SQL Server 日期格式和日期操作
SQL Server发展至今,关于日期的格式的控制方法,有传统的方法,比如CONVERT(),也有比较便利的新方法,比如FORMAT():同样,关于日期的操作函数,也分为传统方法:DATEADD()等 ...
随机推荐
- 传输控制协议--- Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP) 用于网络通信的传输控制和网络协议套件,包括很多协议,其中最主要的是TCP和IP协议.TCP/IP属于UNIX类系统的内置协议,被 ...
- python包管理工具pip
你可以使用一个名为 pip 的程序来安装.升级和移除软件包.默认情况下 pip 将从 Python Package Index <https://pypi.org> 安装软件包.你可以在浏 ...
- 戴尔win10重新安装win7系统
戴尔v5468电脑win10重装回win7系统 首先是公司需要用到ie8来执行公司的项目维护,都是很早之前的项目了,因为是对接政府相关的业务,不怎么有把握对项目进行稳定更新,所以我就为这个ie8操碎了 ...
- 关于MySql数据库主键及索引的区别
一.什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里 ...
- 关于几个与IO相关的重要概念
1.读/写IO 读IO就是发指令从磁盘读取某段序号连续的扇区内容.指令一般是通知磁盘开始扇区位置,然后给出需要从这个初始扇区往后读取的连续扇区个数,同时给出动作是读还是写.磁盘收到这条指令就会按照指令 ...
- 【Py大法系列--01】20多行代码生成你的微信聊天机器人
前言 近期Stack Overflow公布了一项调查显示,Python已经成了发展最快的主流编程语言,Python搭乘着数据科学和机器学习以及人工智能的浪潮,席卷了整个技术圈.越来越多的人想了解.想学 ...
- Spring自定义标签解析与实现
在Spring Bean注册解析(一)和Spring Bean注册解析(二)中我们讲到,Spring在解析xml文件中的标签的时候会区分当前的标签是四种基本标签(import.alias ...
- Vue 入门之概念
Vue 简介 Vue 是一个前端的双向绑定类的框架,发音[读音 /vjuː/, 类似于 [view].新的 Vue 版本参考了 React 的部分设计,当然也有自己独特的地方,比如 Vue 的单文件组 ...
- Scrum Meeting 4 -2014.11.8
开始了apec的放假,希望大家能处理好工作与休息的时间分配,不要玩疯了啊. 各任务都开始实现了自己的算法,需要部署的服务器我也进去看了看情况,希望最后能部署成功. 最近发现的一些关于上一届实现的问题, ...
- 进阶系列(4)—— C#文件与流
一. 驱动器 在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器..NET Framew ork提供DriveInfo类和 DriveType枚 ...