怎样用javascript比较两个时间? 一个时间是 "2009年2月6日 08:00:00";另外一个时间是 "2010-2-6 08:00:00";怎样比较大小? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script type="text/javascript"> var str1 = "2009-2-6 08:00:00"; var str2 = "2009-2-6 15:00:00"; alert(compareDate(str1,str2)); function compareDate(d1, d2) { // 比较时间的方法,d1时间比d2时间大,则返回true return Date.parse(d1.replace(/-/g, "/")) > Date.parse(d2.replace(/-/g, "/")) } </script> 你时间是那获得的啊是jsp还是数据库还是js中获得连接的啊在jsp中获得格式yyyy-HH-dd HH:ss:hh<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.text.SimpleDateFormat" %><% SimpleDateFormat sdFormate = new SimpleDateFormat("yyyy-HH-dd HH:ss:hh"); String time = sdFormate.format(new Date()); %>在js中获得你自己按照格式拼接!~如果从数据库中读出的时间是"2009年2月6日 08:00:00";那要改变成"2009-2-6 08:00:00"; 我不会用正则,我写个比较麻烦<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><SCRIPT LANGUAGE="JavaScript"><!-- window.onload = function() { var time = "2009年2月6日 08:00:00"; var curTime = time.split(" "); var ArrayTime = new Array(); ArrayTime[0] = curTime[0].substring(0,4); ArrayTime[1] = curTime[0].substring(5,6); ArrayTime[2] =curTime[0].substring(7,8); curTime[0] = ArrayTime.join("-",ArrayTime); var joinTime = curTime.join(" ",curTime) alert(joinTime); }//--></SCRIPT></HEAD><BODY></BODY></HTML> 你时间是那获得的啊是jsp还是数据库还是js中获得连接的啊在jsp中获得格式yyyy-HH-dd HH:ss:hh<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.text.SimpleDateFormat" %><% SimpleDateFormat sdFormate = new SimpleDateFormat("yyyy-HH-dd HH:ss:hh"); String time = sdFormate.format(new Date()); %>在js中获得你自己按照格式拼接!~如果从数据库中读出的时间是"2009年2月6日 08:00:00";那要改变成"2009-2-6 08:00:00"; 我不会用正则,我写个比较麻烦<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><SCRIPT LANGUAGE="JavaScript"><!-- window.onload = function() { var time = "2009年2月6日 08:00:00"; var curTime = time.split(" "); var ArrayTime = new Array(); ArrayTime[0] = curTime[0].substring(0,4); ArrayTime[1] = curTime[0].substring(5,6); ArrayTime[2] =curTime[0].substring(7,8); curTime[0] = ArrayTime.join("-",ArrayTime); var joinTime = curTime.join(" ",curTime) alert(joinTime); }//--></SCRIPT></HEAD><BODY></BODY></HTML> function compareDate(sDate1,sDate2){ sDate1 = sDate1.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," "); sDate2 = sDate2.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," "); return Date.parse(sDate1)> Date.parse(sDate2);}alert(compareDate("2010-2-7 08:00:00","2010年2月8日 08:00:00")); 发现一个问题:function compareDate(sDate1,sDate2){ sDate1 = sDate1.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," "); sDate2 = sDate2.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," "); return Date.parse(sDate1)> Date.parse(sDate2);}alert(compareDate("2010-2-3 08:00:00","2010年2月8日 08:00:00"));2010-2-3这个在IE6下测试为FALSE!alert(compareDate("2010-2-9 08:00:00","2010年2月8日 08:00:00"));2010-2-9这个在IE6下测试也为FALSE!比较的意义不存在了。 IE6下好像parse不支持空格作为分隔符;试试这个可以不?那就用Date UTC 静态方法吧。function compareDate(sDate1,sDate2){ arrDate1 = sDate1.split(/[- :\u0391-\uFFE5]/); arrDate2 = sDate2.split(/[- :\u0391-\uFFE5]/); return Date.UTC.apply(this,arrDate1)> Date.UTC.apply(this,arrDate2);}alert(compareDate("2010-2-8 09:00:00","2010年2月8日 08:00:00")); function compareDate(sDate1,sDate2) { arrDate1 = sDate1.split(/[- :\u0391-\uFFE5]/); arrDate2 = sDate2.split(/[- :\u0391-\uFFE5]/); return Date.UTC.apply(this,arrDate1)> Date.UTC.apply(this,arrDate2); } alert(compareDate("2010-2-8 09:00:00","2010年2月8日 08:00:00"));这个方法在IE6下可行!其实开始的方法也可以,关键是正则的匹配没有匹配好!这个其实应该也可以:function compareDate(sDate1,sDate2){ sDate1 = sDate1.replace(/-/g,"/").replace(/[\u0391-\uFFE5]/g,"/"); sDate2 = sDate2.replace(/-/g,"/").replace(/[\u0391-\uFFE5]/g,"/"); return Date.parse(sDate1)> Date.parse(sDate2);}关键问题是2010年2月8日匹配后变成了2010/2/8/ 多出了一个/ 是的,如果用"/"做分隔号也可以的,就是汉字那种情况不好处理,多了一个“/”,IE6下:alert(Date.parse("2010 2 8 09:00:00")) // NaN, 不可以alert(Date.parse("2010/2/8 09:00:00")) // 这个是支持的。 js如何移动iframe里的页面位置 jquery 中$().load()后乱码问题 回复有分 请问网易中网页中的弹出对话框是如何实现的? IE 中这样写以后不会有问题吧? firefox中cells的问题,急等!谢谢! 浮动的的导航菜单,怎样才不会被拦截掉? 如何使用JavaScript控制页面最大化的问题 急急的问: 急问一个小问题 这个eventbus模式如何实现 javascript一个正则表达式问题 js???
var str1 = "2009-2-6 08:00:00";
var str2 = "2009-2-6 15:00:00";
alert(compareDate(str1,str2));
function compareDate(d1, d2) { // 比较时间的方法,d1时间比d2时间大,则返回true
return Date.parse(d1.replace(/-/g, "/")) > Date.parse(d2.replace(/-/g, "/"))
}
</script>
还是js中获得连接的啊
在jsp中获得格式yyyy-HH-dd HH:ss:hh<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.text.SimpleDateFormat" %>
<%
SimpleDateFormat sdFormate = new SimpleDateFormat("yyyy-HH-dd HH:ss:hh");
String time = sdFormate.format(new Date());
%>在js中获得你自己按照格式拼接!~
如果从数据库中读出的时间是"2009年2月6日 08:00:00";
那要改变成"2009-2-6 08:00:00"; 我不会用正则,我写个比较麻烦<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
window.onload = function() {
var time = "2009年2月6日 08:00:00";
var curTime = time.split(" ");
var ArrayTime = new Array();
ArrayTime[0] = curTime[0].substring(0,4);
ArrayTime[1] = curTime[0].substring(5,6);
ArrayTime[2] =curTime[0].substring(7,8);
curTime[0] = ArrayTime.join("-",ArrayTime);
var joinTime = curTime.join(" ",curTime)
alert(joinTime);
}
//-->
</SCRIPT>
</HEAD><BODY></BODY>
</HTML>
还是js中获得连接的啊
在jsp中获得格式yyyy-HH-dd HH:ss:hh<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.text.SimpleDateFormat" %>
<%
SimpleDateFormat sdFormate = new SimpleDateFormat("yyyy-HH-dd HH:ss:hh");
String time = sdFormate.format(new Date());
%>在js中获得你自己按照格式拼接!~
如果从数据库中读出的时间是"2009年2月6日 08:00:00";
那要改变成"2009-2-6 08:00:00"; 我不会用正则,我写个比较麻烦<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
window.onload = function() {
var time = "2009年2月6日 08:00:00";
var curTime = time.split(" ");
var ArrayTime = new Array();
ArrayTime[0] = curTime[0].substring(0,4);
ArrayTime[1] = curTime[0].substring(5,6);
ArrayTime[2] =curTime[0].substring(7,8);
curTime[0] = ArrayTime.join("-",ArrayTime);
var joinTime = curTime.join(" ",curTime)
alert(joinTime);
}
//-->
</SCRIPT>
</HEAD><BODY></BODY>
</HTML>
function compareDate(sDate1,sDate2)
{
sDate1 = sDate1.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," ");
sDate2 = sDate2.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," ");
return Date.parse(sDate1)> Date.parse(sDate2);
}alert(compareDate("2010-2-7 08:00:00","2010年2月8日 08:00:00"));
function compareDate(sDate1,sDate2)
{
sDate1 = sDate1.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," ");
sDate2 = sDate2.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," ");
return Date.parse(sDate1)> Date.parse(sDate2);
}alert(compareDate("2010-2-3 08:00:00","2010年2月8日 08:00:00"));
2010-2-3这个在IE6下测试为FALSE!
alert(compareDate("2010-2-9 08:00:00","2010年2月8日 08:00:00"));
2010-2-9这个在IE6下测试也为FALSE!
比较的意义不存在了。
试试这个可以不?那就用Date UTC 静态方法吧。function compareDate(sDate1,sDate2)
{
arrDate1 = sDate1.split(/[- :\u0391-\uFFE5]/);
arrDate2 = sDate2.split(/[- :\u0391-\uFFE5]/);
return Date.UTC.apply(this,arrDate1)> Date.UTC.apply(this,arrDate2);
}
alert(compareDate("2010-2-8 09:00:00","2010年2月8日 08:00:00"));
这个方法在IE6下可行!
其实开始的方法也可以,关键是正则的匹配没有匹配好!
这个其实应该也可以:
function compareDate(sDate1,sDate2)
{
sDate1 = sDate1.replace(/-/g,"/").replace(/[\u0391-\uFFE5]/g,"/");
sDate2 = sDate2.replace(/-/g,"/").replace(/[\u0391-\uFFE5]/g,"/");
return Date.parse(sDate1)> Date.parse(sDate2);
}
关键问题是2010年2月8日匹配后变成了2010/2/8/ 多出了一个/
是的,如果用"/"做分隔号也可以的,就是汉字那种情况不好处理,多了一个“/”,IE6下:
alert(Date.parse("2010 2 8 09:00:00")) // NaN, 不可以
alert(Date.parse("2010/2/8 09:00:00")) // 这个是支持的。