Jquery函数中的Javascript变量可以更好地使用?

时间:2014-05-08 09:27:15

标签: javascript jquery

我正在研究html5分钟和最大日期范围功能。

我在变量中编写了一个代码,然后在正确的属性位置使用。

我的客户端(代码审查员)说这段代码看起来不太好,更好的是在javascrit帮助器中使用以供以后使用。

这是我的代码:

var now_html5 = new Date();
var day_html5 = ("0" + now_html5.getDate()).slice(-2);
var month_html5 = ("0" + (now_html5.getMonth() + 1)).slice(-2);
var today_html5 = now_html5.getFullYear()+"-"+(month_html5)+"-"+(day_html5);
var birth_date_html5 = (now_html5.getFullYear() - 2)+"-"+(month_html5)+"-"+(day_html5);
if (Modernizr.inputtypes.date && is_touch_device() ) {
    $('.date-container input').prop('type','date');
    $('#date-from').attr('max',today_html5);
    $('#date-to').attr('min',today_html5);
    $('#birth-date').attr('max',birth_date_html5);
}

如何将日期变量放在函数中以便稍后用于其他函数,定义?

2 个答案:

答案 0 :(得分:1)

我想你的客户意味着你应该创建一些函数来准确返回你在变量中的内容。

例如:

function getTodayHtml5() {
    var now_html5 = new Date();
    var day_html5 = ("0" + now_html5.getDate()).slice(-2);
    var month_html5 = ("0" + (now_html5.getMonth() + 1)).slice(-2);

    return now_html5.getFullYear()+"-"+(month_html5)+"-"+(day_html5);
}

然后像这样使用它:

$('#date-from').attr('max',getTodayHtml5());

应该以相同的方式用于birth_date_html5。

答案 1 :(得分:1)

也许是沿着这些方向的东西?

使用功能,您可以传递任何日期以开始计算。

function getSplittedDate(date) {
    var d = {
        day: ("0" + date.getDate()).slice(-2),
        month: ("0" + (date.getMonth() + 1)).slice(-2),
    };
    d.today = (date.getFullYear()+"-"+(d.month)+"-"+(d.day)),
    d.birth_day = (date.getFullYear() - 2)+"-"+(d.month)+"-"+(d.day)
    return d;
}
var now_html5 = new Date();
console.log(getSplittedDate(now_html5));
// Object {day: "08", month: "05", today: "2014-05-08", birth_day: "2012-05-08"}

fiddle