【问题标题】:get proper date in jQuery在 jQuery 中获取正确的日期
【发布时间】:2013-03-23 08:43:54
【问题描述】:

我正在做一个项目,我正在使用FullCalendarjQuery dialog.

我正在使用jQuery 对话框,因为用户选择任何时间段,他们将看到一个对话框,并且在该对话框内我将传递开始和结束时间。

但问题是 fullCalendar 传递 start 参数作为日期 object 这是 Date {Tue Apr 02 2013 00:00:00 GMT+0530 (India Standard Time)} 现在的问题是如何只显示 02-04-2013 00:00:00 我不想使用更多插件 因为它已经包含了太多的js。

我有什么?

jQuery 对话框代码

$( "#dialog-form" ).dialog({
    autoOpen: false,
    modal: true,
    buttons:
    {
        "Create an event": function()
        {
            var bValid = true;
            if ( bValid )
            {
                //adding event to calendar code
                $( this ).dialog( "close" );
            }
        },
        Cancel: function()
        {
            $( this ).dialog( "close" );
        }
    },
    close: function()
    {
        allFields.val( "" ).removeClass( "ui-state-error" );
    }
});

完整日历

var calendar = $('#calendar').fullCalendar(
{
    header:
    {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    selectable: true,
    selectHelper: true,
    select: function(start, end, allDay)
    {
        console.log(start);
        $("#dialog-form input#start_time").val(start);
        $("#dialog-form input#end_time").val(end);
        $( "#dialog-form" ).dialog( "open" );
        calendar.fullCalendar('unselect');
    },

这里只贴了一半代码,因为太长了,没必要在这里添加。

谢谢

【问题讨论】:

  • 你可以试试:$.datepicker.formatDate('dd-mm-yy', start);。希望这会给你一些想法。 PS,这取决于 jQ Datepicker。
  • @Ronakthanx 回复,但它不是日期选择器。
  • 这应该会有所帮助:[用 JavaScript 格式化日期](stackoverflow.com/questions/1056728/…)
  • @VimalStan 我已经看到了,但它只输出我的月份日期和年份而不是时间......看我的答案我解决了它
  • 你试过了吗:$.fullCalendar.formatDate( start, 'dd-MM-yyyy HH:mm:ss' );

标签: jquery date fullcalendar date-formatting


【解决方案1】:

谢谢大家寻找和评论问题,但我发现了。

var startDate = start.getFullYear() + "-" + getOtherFiled(start.getMonth()) + "-" + getOtherFiled(start.getDate()) + " " +  getOtherFiled(start.getHours()) + ":" + getOtherFiled(start.getMinutes()) + ":" + getOtherFiled(start.getSeconds());

function getOtherFiled(obj)
{
    if (obj<10)
       return "0"+obj;
    return obj;
}

以上代码成功输出'2013-03-03 02:30:00'等。

【讨论】:

    【解决方案2】:

    更新

    完整的日历有一个内置的conversion utility

    $.fullCalendar.formatDate( date, formatString [, options ] )
    

    旧答案

    start 是一个日期对象,因此您可以执行以下操作

    var curDate = start.getDate();
    var curMonth = (parseInt(start.getMonth())+1);
    var curYear = start.getFullYear();
    
    alert(curDate+'-'+curMonth+'-'+curYear);
    

    这是Live fiddle example

    【讨论】:

    • 从日期对象中获取时间与获取日期和年份一样,对吗? gethours()getMiniutes()Full reference here。顺便说一句,有用于日期转换的完整日历的内置实用程序。
    • 啊,我在你的回答中看到了:)
    【解决方案3】:
    $.fullCalendar.formatDate( start, 'dd-MM-yyyy HH:mm:ss' );
    

    【讨论】:

    • 我这辈子都没用过fullCalendar... :)
    • 感谢评论中提供的快速完美的解决方案...+1 for u...并接受了它
    • 所以我想这是深入了解 fullCalendar 的机会……哈哈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    相关资源
    最近更新 更多