从'now'日期时间datepicker条目减去7小时

时间:2016-06-13 08:59:26

标签: javascript date datepicker

我有2个日期选择器,开始和结束时间。

我希望开始时间从“现在”开始减去7小时

我有这个:

$('#<%= txtErrorStartDate.ClientID%>').val(formatDateTime(sqlNow('HH', -7), 'dateshorttime')).validate();

和此:

function formatDateTime(d, format, rtnObj) {
    var arr
    , type
    , arrDate
    , arrTime
    , str
    ;

    if (!d) {
        if (rtnObj) {
            return null;
        } else {
            return '';
        }
    }

    switch (format) {
        case 'shortdate':
            type = 1;
            break;
        case 'shorttime':
            type = 2;
            break;
        case 'dateshorttime':
            type = 3;
            break;
        case 'datelongtime':
            type = 4;
            break;
        case 'longtime':
            type = 5;
            break;
        default:
            if (rtnObj) {
                return null;
            } else {
                return '';
            }
    }

    if (typeof(d) === 'string') {
        if (d.indexOf('/Date(') !== -1) {
            // JSON date (milliseconds)
            d = new Date(Number(d.replace('/Date(', '').replace(')/', '')));
        } else {
            str = true;
        }
    } else if (typeof(d) === 'number') {
        d = new Date(d);
    }

    if (str) {
        // Format string
        d = $.trim(d);

        if (d.indexOf(' ') !== -1) {
            // Split date and time
            arr = d.split(' ');

            arrDate = arr[0].split('/');
            arrTime = arr[1].split(':');

            if (arrTime.length === 2) {
                // Add missing seconds
                arrTime.push('00');
            }
        } else if (d.indexOf('/') !== -1) {
            // Split date
            arrDate = d.split('/');
            arrTime = ['00', '00', '00'];

        } else {
            arrDate = ['30', '12', '1899'];
            arrTime = d.split(':');

            if (arrTime.length === 2) {
                // Add missing seconds
                arrTime.push('00');
            }
        }
    } else {
        // Format Javascript date object

        // Build date array
        arrDate = [];
        arrDate.push(d.getDate());
        arrDate.push(d.getMonth() + 1);
        arrDate.push(d.getFullYear());

        // Build time array
        arrTime = [];
        arrTime.push(d.getHours());
        arrTime.push(d.getMinutes());
        arrTime.push(d.getSeconds());

        // Single digit check
        if (Number(arrDate[0]) < 10) { arrDate[0] = '0' + arrDate[0]; }
        if (Number(arrDate[1]) < 10) { arrDate[1] = '0' + arrDate[1]; }
        if (Number(arrTime[0]) < 10) { arrTime[0] = '0' + arrTime[0]; }
        if (Number(arrTime[1]) < 10) { arrTime[1] = '0' + arrTime[1]; }
        if (Number(arrTime[2]) < 10) { arrTime[2] = '0' + arrTime[2]; }
    }

    if (rtnObj) {
        // Return Javascript object

        // Take 1 from month (0 - 11)
        arrDate[1] = String(Number(arrDate[1]) - 1);

        switch (type) {
            case 1: // shortdate
                return new Date(arrDate[2], arrDate[1], arrDate[0]);
                break;
            case 2: // shorttime
                return new Date('1899', '11', '30', arrTime[0], arrTime[1]);
                break;
            case 3: // dateshorttime
                return new Date(arrDate[2], arrDate[1], arrDate[0], arrTime[0], arrTime[1]);
                break;
            case 4: // datelongtime
                return new Date(arrDate[2], arrDate[1], arrDate[0], arrTime[0], arrTime[1], arrTime[2]);
                break;
            case 5: // longtime
                return new Date('1899', '11', '30', arrTime[0], arrTime[1], arrTime[2]);
                break;
        }
    } else {
        // Return date string
        switch (type) {
            case 1: // shortdate
                return arrDate.join('/');
                break;
            case 2: // shorttime
                arrTime.pop();
                return arrTime.join(':');
                break;
            case 3: // dateshorttime
                arrTime.pop();
                return arrDate.join('/') + ' ' + arrTime.join(':');
                break;
            case 4: // datelongtime
                return arrDate.join('/') + ' ' + arrTime.join(':');
                break;
            case 5: // longtime
                return arrTime.join(':');
                break;
        }
    }
}

我所拥有的不起作用,我想知道如何从开始时间减去7小时

添加了datepicker html:

<div class="inputrow" runat="server">
            <label style="margin-left: 179px" class="inputlabel">Start Date</label>
            <input runat="server" type="text" id="txtErrorStartDate" name="txtErrorStartDate1" class="dateshorttime datepick required" value="" data-taborder="1" required="" style="width: 18%" />
        </div>

3 个答案:

答案 0 :(得分:1)

我的java知识并不是很好,但是为了它的价值,我在C#中要做的就是:

string startTime = DateTime.Now;  // Fire whenever the event starts
string endTime = DateTime.Now;  // Fire whenever the event ends

string subtractedTime = currentTime.ToString("HH") - 7;  // The time subtracted by 7 hours

答案 1 :(得分:1)

  var start_time = new Date();
  start_time.setHours(start_time.getHours()-7);

答案 2 :(得分:0)

我已用下面的代码行解决了这个问题。

$('#<%= txtErrorStartDate.ClientID%>').val(formatDateTime(dateAdd('hour', -7, sqlNow()), 'dateshorttime')).validate();

感谢您的投入。