Javascript 两个日期如何比较?
我有两个约会,比如从和到。 日期格式,如2013年9月28日和2013年9月01日。 我想比较日期并显示错误消息。 我用过这个密码Javascript 两个日期如何比较?,javascript,jquery,Javascript,Jquery,我有两个约会,比如从和到。 日期格式,如2013年9月28日和2013年9月01日。 我想比较日期并显示错误消息。 我用过这个密码 var from = $('#<%= txtFDateEdu.ClientID %>').val(); var to = $('#<%= txtTDateEdu.ClientID %>').val(); var dateTypeVar = $('#<%= txtFDateEdu.ClientID %>
var from = $('#<%= txtFDateEdu.ClientID %>').val();
var to = $('#<%= txtTDateEdu.ClientID %>').val();
var dateTypeVar = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
var dateTypeVarto = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
$.datepicker.formatDate('dd-mm-yy', dateTypeVar);
var datefrom = $.datepicker.formatDate('dd/mm/yyyy', dateTypeVar);
var dateto = $.datepicker.formatDate('dd/mm/yyyy', dateTypeVarto);
alert(datefrom);
if (datefrom > dateto) {
alert("Success");
}
else {
}
var from=$('#').val();
var to=$('#').val();
var dateTypeVar=$('#')。日期选择器('getDate');
var dateTypeVarto=$('#')。日期选择器('getDate');
$.datepicker.formatDate('dd-mm-yy',dateTypeVar);
var datefrom=$.datepicker.formatDate('dd/mm/yyyy',dateTypeVar);
var dateto=$.datepicker.formatDate('dd/mm/yyyy',dateTypeVarto);
警报(日期从);
如果(datefrom>dateto){
警惕(“成功”);
}
否则{
}
此代码工作不正常。有些问题以日期格式出现。请任何人帮我解决日期格式的问题,并比较正确的日期。
我也使用这个代码
var from = $('#<%= txtFDateEdu.ClientID %>').val();
var to = $('#<%= txtTDateEdu.ClientID %>').val(;)
alert(from);
alert(to);
var datefrom = new Date(from);
var dateto = new Date(to);
alert(datefrom);
alert(dateto);
if (datefrom > dateto) {
alwer("Success");
}
else {
}
var from=$('#').val();
var to=$('#')。val(;)
警报(来自);
警惕;
var DATEFORM=新日期(从);
var dateto=新日期(至);
警报(日期从);
警报(日期至);
如果(datefrom>dateto){
alwer(“成功”);
}
否则{
}
但这也不能正常工作。我也使用日期选择器,通常我使用以下脚本
function compare_dates(valid_to, valid_from){
var splited_to = valid_to.split("-")
var to_date_monthfield=splited_to[1];
var to_date_dayfield=splited_to[0];
var to_date_yearfield=splited_to[2];
var to_date = new Date(to_date_yearfield, to_date_monthfield-1, to_date_dayfield);
var splited_from = valid_from.split("-");
var from_date_monthfield=splited_from[1];
var from_date_dayfield=splited_from[0];
var from_date_yearfield=splited_from[2];
var from_date = new Date(from_date_yearfield, from_date_monthfield-1, from_date_dayfield);
var cur_date = new Date();
if(!(from_date > cur_date.setDate(cur_date.getDate() - 1))){
return false;
}
if(!(to_date > from_date)){
return false;
}
return true;
}
这要求您的日期采用dd//mm/yyyy格式
我发现有些东西很有用。你可以用我的代码
new Date(Date.parse(month_string +" 1, 2012")).getMonth()+1
您可以用上述代码替换蒙特菲尔德。或者您也可以使用一种方法。如果要将给定日期转换为字符串,只需跳过此步骤:
var datefrom = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
var dateto = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
if (datefrom > dateto) {
alert("Success");
}
else {
}
var datefrom=$('#')。日期选择器('getDate');
var dateto=$('#')。日期选择器('getDate');
如果(datefrom>dateto){
警惕(“成功”);
}
否则{
}
在将两个日期
对象转换为字符串之前,只需比较它们:
var dateTypeVar = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
var dateTypeVarto = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate');
if (dateTypeVar > dateTypeVarto) {
...
}
var dateTypeVar=$('#')。日期选择器('getDate');
var dateTypeVarto=$('#')。日期选择器('getDate');
如果(dateTypeVar>dateTypeVarto){
...
}
比较运算符将通过
.valueOf()
自动获取两个日期对象的值,即自1970/01/01 00:00:00以来经过的毫秒数。“此代码工作不正常。日期格式中出现了一些问题”请您对问题进行更详细的说明。是的,以日期格式发布。我有一个类似于2013年9月28日的日期格式。我想转换日期,而不是比较。@jitendrakumar:如果您知道原因,应该能够修复它。再努力一点。datepicker.formatDate
返回一个字符串。您不能将两个字符串比较为datefrom>dateto
,而期望Javascript知道它们应该是日期。将它们转换为正确的Date
object您能提供错误输出吗?这本身并不是错误的,但也有点幼稚和冗长。它对同一对象/参数执行多次拆分
,并且不进行错误检查。还有,为什么不直接将返回到_date.比较(从_date)
并让调用方决定比较,而不是在函数中对其进行硬编码?我有日期格式,如2013年9月28日。请提供有关此格式的解决方案。我已更改了答案位并添加了两个链接。请检查一下。