【问题标题】:How can I change default date format of Javascript?如何更改 Javascript 的默认日期格式?
【发布时间】:2017-08-28 16:14:00
【问题描述】:

我有这个代码来更改行程上的日期,但它看起来像这样:2017 年 4 月 15 日星期六 00:00:00 GMT-0500 (CDT) 我不需要“时间" 和下一个信息 (00:00:00 GMT-0500 (CDT)),我想要这样的日期显示:Saturday, April 15 2017

这是我的代码:

$.datepicker.regional['es'] = {
    closeText: 'Cerrar',
    prevText: '< Ant',
    nextText: 'Sig >',
    currentText: 'Hoy',
    monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
    monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
    dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
    dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
    dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
    weekHeader: 'Sm',
    dateFormat: 'dd/mm/yy',
    firstDay: 1,
    isRTL: false,
    showMonthAfterYear: false,
    yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['es']);

$(function() {
    $("#fecha").datepicker();
});

$(function() {

        var fechasdisponibles = ["4-1-2017", "4-8-2017", "4-15-2017", "4-22-2017", "4-29-2017", "5-6-2017", "5-13-2017", "5-20-2017", "5-27-2017", "6-3-2017", "6-10-2017", "6-17-2017", "6-24-2017",
            "7-1-2017", "7-8-2017", "7-15-2017", "7-22-2017", "7-29-2017", "8-5-2017", "8-12-2017", "8-19-2017", "8-26-2017", "9-2-2017", "9-9-2017", "9-16-2017", "9-23-2017",
            "9-30-2017", "10-7-2017", "10-14-2017", "10-21-2017", "10-28-2017", "11-4-2017", "11-18-2017", "12-2-2017", "12-9-2017", "12-16-2017", "12-23-2017", "12-30-2017",
            "1-6-2018", "1-20-2018", "2-3-2018", "2-17-2018", "3-3-2018", "3-17-2018", "3-31-2018"
        ];

        function habilitardias(date) {
            var sdate = $.datepicker.formatDate('m-d-yy', date)
            console.log(sdate)
            if ($.inArray(sdate, fechasdisponibles) != -1) {
                return [true];
            }
            return [false];

        }

        $("#calendario").datepicker({
            beforeShowDay: habilitardias,
            dateFormat: 'DD, d MM, yy',
            firstDay: 7,
            defaultDate: 4,
            onSelect: function() {
                var dateText = $.datepicker.formatDate("dd-mm-yy", $(this).datepicker("getDate"));
                var fechaselecc = dateText;
                var diamesyear = fechaselecc.split("-");
                alert("Ha selecionado la fecha de salida: " + diamesyear + " Itinerario actualizado");
                var undiasmasuno = new Date(parseInt(
                        diamesyear[2], 10),
                    parseInt(diamesyear[1], 10) - 1,
                    parseInt(diamesyear[0], 10)
                );
                $('#date-start-output').html(undiasmasuno + " ");
                undiasmasuno.setDate(undiasmasuno.getDate() + 1);
                $('#date-start-output2').html(undiasmasuno + " ");
                undiasmasuno.setDate(undiasmasuno.getDate() + 1);
                $('#date-start-output3').html(undiasmasuno + " ");
                undiasmasuno.setDate(undiasmasuno.getDate() + 1);
                $('#date-start-output4').html(undiasmasuno + " ");
                undiasmasuno.setDate(undiasmasuno.getDate() + 1);
                $('#date-start-output5').html(undiasmasuno + " ");
                undiasmasuno.setDate(undiasmasuno.getDate() + 1);
                $('#date-start-output6').html(undiasmasuno + " ");
                undiasmasuno.setDate(undiasmasuno.getDate() + 1);
                $('#date-start-output7').html(undiasmasuno + " ");
                undiasmasuno.setDate(undiasmasuno.getDate() + 1);
                $('#date-start-output8').html(undiasmasuno + " ");
                undiasmasuno.setDate(undiasmasuno.getDate() + 1);
            },
        });
    }
);

</script>

<body>
    <div type="text" id="calendario" name="calendario"></div>

    <strong><span id="date-start-output" class="date start" style="color: #ff0000;">Día 1º: </span><span style="color: #ff0000;">MÉXICO-MADRID (Sábado)</span></strong><br> Salida en vuelo internacional hacia Madrid.<br>
    <strong><span id="date-start-output2" class="imprimevari" style="color: #ff0000;">Día 2º: </span><span style="color: #ff0000;">MÉXICO-MADRID)</span></strong><br> Salida en vuelo internacional hacia Madrid.<br>
    <strong><span id="date-start-output3" class="imprimevari" style="color: #ff0000;">Día 2º: </span><span style="color: #ff0000;">MÉXICO-MADRID)</span></strong><br> Salida en vuelo internacional hacia Madrid.<br>
    <strong><span id="date-start-output4" class="imprimevari" style="color: #ff0000;">Día 2º: </span><span style="color: #ff0000;">MÉXICO-MADRID)</span></strong><br> Salida en vuelo internacional hacia Madrid.<br>
</body>

【问题讨论】:

标签: javascript jquery jquery-plugins datepicker calendar


【解决方案1】:

制作自己的格式化函数,将 Date 对象传递给该函数。如果您愿意,可以将日期和月份名称的字符串更改为您的语言。

function formatDate(date) {
    var day;
    var month;

    switch (date.getDay()) {
        case 1: day = "Monday"; break;
        case 2: day = "Tuesday"; break;
        case 3: day = "Wednesday"; break;
        case 4: day = "Thursday"; break;
        case 5: day = "Friday"; break;
        case 6: day = "Saturday"; break;
        default: day = "Sunday";
    }

    switch (date.getMonth()) {
        case 0: month = "January"; break;
        case 1: month = "Febuary"; break;
        case 2: month = "March"; break;
        case 3: month = "April"; break;
        case 4: month = "May"; break;
        case 5: month = "June"; break;
        case 6: month = "July"; break;
        case 7: month = "August"; break;    
        case 8: month = "September"; break;    
        case 9: month = "October"; break;
        case 10: month = "November"; break;    
        default: month = "December";
    }

    return day + ", " + month + " " + ("0" + date.getDate()).slice(-2) + " " + (1900 + date.getYear());
}

【讨论】:

【解决方案2】:

JavaScript 将(默认)以全文字符串格式输出日期。

如果您使用的是 JavaScript,这里有一个解决方案:

var day_of_week = new Array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday");

var month_names = new Array("January", "February", "March",
"April", "May", "June", "July", "August", "September",
"October", "November", "December");

var myDate = new Date();
var output = day_of_week[myDate.getDay()] + ", " +
  month_names[myDate.getMonth()] + " " + myDate.getDate() + " " + myDate.getFullYear());

如果您使用的是 jQuery UI,您可以使用内置的 datepicker 方法来格式化您的日期对象:

$.datepicker.formatDate('yy-mm-dd', new Date(2007, 1 - 1, 26));

日期选择器只能格式化日期,不能格式化时间。

查看jQuery UI datepicker formatDate 和示例。

【讨论】:

  • 我的代码中有这个:var dateText = $.datepicker.formatDate("dd-mm-yy", $(this).datepicker("getDate"));,但我认为问题出在这个部分:var undiasmasuno = new Date(parseInt( diamesyear[2], 10), parseInt(diamesyear[1], 10) - 1, parseInt(diamesyear[0], 10) );
  • 你能解释一下你想用var undiasmasuno = new Date(parseInt( diamesyear[2], 10), parseInt(diamesyear[1], 10) - 1, parseInt(diamesyear[0], 10) );做什么吗?什么是直径年?
  • diamesyear 是一个变量var diamesyear = fechaselecc.split("-");
猜你喜欢
  • 1970-01-01
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多