时间Date.js
<span style="line-height: 25.2px;">/**
* 日期解析,字符串转日期
* @param dateString 可以为2017-02-16,2017/02/16,2017.02.16
* @returns {Date} 返回对应的日期对象
*/
function dateParse(dateString){
var SEPARATOR_BAR = "-";
var SEPARATOR_SLASH = "/";
var SEPARATOR_DOT = ".";
var dateArray;
if(dateString.indexOf(SEPARATOR_BAR) > -1){
dateArray = dateString.split(SEPARATOR_BAR);
}else if(dateString.indexOf(SEPARATOR_SLASH) > -1){
dateArray = dateString.split(SEPARATOR_SLASH);
}else{
dateArray = dateString.split(SEPARATOR_DOT);
}
return new Date(dateArray[0], dateArray[1]-1, dateArray[2]);
}; /**
* 日期比较大小
* compareDateString大于dateString,返回1;
* 等于返回0;
* compareDateString小于dateString,返回-1
* @param dateString 日期
* @param compareDateString 比较的日期
*/
function dateCompare(dateString, compareDateString){
if(isEmpty(dateString)){
alert("dateString不能为空");
return;
}
if(isEmpty(compareDateString)){
alert("compareDateString不能为空");
return;
}
var dateTime = dateParse(dateString).getTime();
var compareDateTime = dateParse(compareDateString).getTime();
if(compareDateTime > dateTime){
return 1;
}else if(compareDateTime == dateTime){
return 0;
}else{
return -1;
}
}; /**
* 判断日期是否在区间内,在区间内返回true,否返回false
* @param dateString 日期字符串
* @param startDateString 区间开始日期字符串
* @param endDateString 区间结束日期字符串
* @returns {Number}
*/
function isDateBetween(dateString, startDateString, endDateString){
if(isEmpty(dateString)){
alert("dateString不能为空");
return;
}
if(isEmpty(startDateString)){
alert("startDateString不能为空");
return;
}
if(isEmpty(endDateString)){
alert("endDateString不能为空");
return;
}
var flag = false;
var startFlag = (dateCompare(dateString, startDateString) < 1);
var endFlag = (dateCompare(dateString, endDateString) > -1);
if(startFlag && endFlag){
flag = true;
}
return flag;
}; /**
* 判断日期区间[startDateCompareString,endDateCompareString]是否完全在别的日期区间内[startDateString,endDateString]
* 即[startDateString,endDateString]区间是否完全包含了[startDateCompareString,endDateCompareString]区间
* 在区间内返回true,否返回false
* @param startDateString 新选择的开始日期,如输入框的开始日期
* @param endDateString 新选择的结束日期,如输入框的结束日期
* @param startDateCompareString 比较的开始日期
* @param endDateCompareString 比较的结束日期
* @returns {Boolean}
*/
function isDatesBetween(startDateString, endDateString,
startDateCompareString, endDateCompareString){
if(isEmpty(startDateString)){
alert("startDateString不能为空");
return;
}
if(isEmpty(endDateString)){
alert("endDateString不能为空");
return;
}
if(isEmpty(startDateCompareString)){
alert("startDateCompareString不能为空");
return;
}
if(isEmpty(endDateCompareString)){
alert("endDateCompareString不能为空");
return;
}
var flag = false;
var startFlag = (dateCompare(startDateCompareString, startDateString) < 1);
var endFlag = (dateCompare(endDateCompareString, endDateString) > -1);
if(startFlag && endFlag){
flag = true;
}
return flag; } checkTime = function() {
var startTime = document.getElementById("startTime").value;
var endTime = document.getElementById("endTime").value;
compareCalendar(startTime, endTime);
}
//比较日前大小
function compareDate(checkStartDate, checkEndDate) {
var arys1= new Array();
var arys2= new Array();
if(checkStartDate != null && checkEndDate != null) {
arys1=checkStartDate.split('-');
var sdate=new Date(arys1[0],parseInt(arys1[1]-1),arys1[2]);
arys2=checkEndDate.split('-');
var edate=new Date(arys2[0],parseInt(arys2[1]-1),arys2[2]);
if(sdate > edate) {
alert("日期开始时间大于结束时间");
return false;
} else {
alert("通过");
return true;
}
}
} //判断日期,时间大小
function compareTime(startDate, endDate) {
if (startDate.length > 0 && endDate.length > 0) {
var startDateTemp = startDate.split(" ");
var endDateTemp = endDate.split(" "); var arrStartDate = startDateTemp[0].split("-");
var arrEndDate = endDateTemp[0].split("-"); var arrStartTime = startDateTemp[1].split(":");
var arrEndTime = endDateTemp[1].split(":"); var allStartDate = new Date(arrStartDate[0], arrStartDate[1], arrStartDate[2], arrStartTime[0], arrStartTime[1], arrStartTime[2]);
var allEndDate = new Date(arrEndDate[0], arrEndDate[1], arrEndDate[2], arrEndTime[0], arrEndTime[1], arrEndTime[2]); if (allStartDate.getTime() >= allEndDate.getTime()) {
alert("startTime不能大于endTime,不能通过");
return false;
} else {
alert("startTime小于endTime,所以通过了");
return true;
}
} else {
alert("时间不能为空");
return false;
}
}
//比较日期,时间大小
function compareCalendar(startDate, endDate) {
if (startDate.indexOf(" ") != -1 && endDate.indexOf(" ") != -1 ) {
//包含时间,日期
compareTime(startDate, endDate);
} else {
//不包含时间,只包含日期
compareDate(startDate, endDate);
}
};
</span>
时间Date.js的更多相关文章
- js常用数据类型(Number,String,undefined,boolean) 引用类型( function,object,null ),其他数据类型( 数组Array,时间Date,正则RegExp ),数组与对象的使用
js常用数据类型 数字类型 | 字符串类型 | 未定义类型 | 布尔类型 typeof()函数查看变量类型 数字类型 Number var a1 = 10; var a2 = 3.66; conso ...
- .net中判断距离高考多长时间的js函数
在JS中判断距离高考(此处举例高考)的时间函数 JS中代码: function djs() { var severtime= new Date(); //获取服务器日期 var year=severt ...
- java时间与js时间
这是一个由java获取的系统时间与js获取的系统时间不一致导致的测试缺陷 定义方式: java Date date = new Date(); js var Date date2 = new Date ...
- 修改Linux系统日期与时间date clock
先设置日期 date -s 20080103 再设置时间 date -s 18:24:30 为了永久生效,需要将修改的时间写入CMOS. 查看CMOS的时间: #clock -r 将当前系统时间写到C ...
- linux修改系统时间date命令加clock -w
http://m.jb51.net/LINUXjishu/117784.html 修改linux系统时间的方法(date命令) 11-18 23:22:27作者:脚本之家 命令格式为: date -s ...
- Linux下查看设设置时间date命令
查看时间 # date "+%Y_%m_%d %H-%M-%S" 设置时间 #date -s "2018-05-17 09:51:50" //写入到硬件时钟 ...
- 00007 - Linux时间date命令详解
1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与时间. 3.命令参数 -d<字符串>:显示字符串所指的日期与时间.字符串前后必须加上双引号: -s<字符串& ...
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型 java.util.Date dt = new Date(); ...
- springmvc时间(date)无法转入后台(@DateTimeFormat+@JsonFormat(GMT+8))
spring时间(date)无法转入后台 Type Status Report Description The server cannot or will not process the reques ...
随机推荐
- javascript数据基本类型和引用数据类型区别
基本类型和引用数据类型区别 1.基本数据类型和引用数据类型 javascript中有两种数据类型,分别是基本数据类型和引用数据类型: 基本数据(原始数据)类型指的是简单的数据段,而引用数据类型则指的是 ...
- 有趣的js(鼠标特效)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- Floyd判断环算法总结
Floyd判断环算法 全名Floyd’s cycle detection Algorithm, 又叫龟兔赛跑算法(Floyd's Tortoise and Hare),常用于链表.数组转化成链表的题目 ...
- spring cloud微服务下手动回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 这里使用的场景是,跨服务调用接口,比如:用户信息和用户积分 ...
- 后台管理系统之“图片上传” --vue
图片上传(基于vue) 相信上传图片是所有系统必备的功能吧,工作中的第一个管理系统就在上传图片的功能上卡顿了一整天. 当时用的elementUI组件,但是由于样式和设计图样式差别较大再加上原生相较好理 ...
- python学习笔记:1.初识python
4.26 今日内容大纲 1.初识计算机.CPU 内存 硬盘 2.python初识 3.python发展史以及影响 4.python的分类 5.python的种类 6.变量 7.常量 8.注释 9.基础 ...
- java static关键字的使用
static关键字 通常来说,创建类的时候,是用new创建此类的对象才可以获得,执行new创建对象时数据存储空间才被分配,其方法才被外界调用 有两种情况用new无法解决: 1 ...
- nodejs-POST数据处理
GET数据:容量小 32K 数据在URL中 POST数据:数据量大 1G 分段传输 数据另外发 处理方法: const http=require("http"); http.cre ...
- Problem 7: 10001st prime
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. ...
- 初读"Thinking in Java"读书笔记之第五章 --- 初始化与清理
用构造器确保初始化 构造器可以确保每个对象都会得到初始化,Java毁在创建对象时自动调用构造器. 构造器采用与类名相同的名称,因此并不适合"每个方法首字母小写的风格". 构造器默认 ...