3

我在 2 个文本框中有一个日期选择器,正在尝试将这些文本框的值添加到需要有效 Javascript 日期的函数中。

这是函数的一部分 - 开始是一个日期

        else if (daystosearch == 'custom') {
            start.setDate(Date.parse($('#<%= tStartDate.ClientID %>').val()));
            end.setDate(Date.parse($('#<%= tEndDate.ClientID %>').val()));
        }

Date.Parse 不起作用,因为文本框的值是“10/29/2012”,它不是可解析的日期。如何使用start.setDate和获取文本框日期的值?

4

3 回答 3

3

如果文本框的值类似于“10/29/2012”,您应该可以使用:

var new_start = new Date($('#<%= tStartDate.ClientID %>').val());

但是,如果您尝试使用setDate,它接受的值是 1-31 的整数,因此您需要getDate在新的 Date 对象上使用,例如:

var new_start = new Date($('#<%= tStartDate.ClientID %>').val());
start.setDate(new_start.getDate());
于 2012-10-27T20:43:02.063 回答
2

使用 $(selector).datepicker("getDate")然后.getDate()抓住这一天。在你的情况下:

start.setDate($('#<%= tStartDate.ClientID %>').datePicker("getDate").getDate());

正如第一条评论所说,这将直接为您提供一个 Date 对象,而不管文本框中使用的字符串格式如何。看看API 文档:)

编辑:正如 ianpgall 所指出的,您还需要使用 getDate() 来获取日期编号。

于 2012-10-27T20:41:22.733 回答
0

使用来自 datepicker http://docs.jquery.com/UI/Datepicker/parseDate的实用程序函数

$.datepicker.parseDate('yy-mm-dd', '2007-01-26');
于 2012-10-27T20:45:52.223 回答