如何将日期/时间显示从24小时转换为12小时AM / PM

时间:2019-12-18 10:17:59

标签: javascript

以下脚本可以很好地以24小时格式显示日期和时间。我想将其转换为12小时AM / PM格式的显示时间,但无法正常工作。请告诉我它如何正确完成?

<script type="text/javascript">
    function date_time(id) {
        date = new Date;
        year = date.getFullYear();
        month = date.getMonth();
        months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec');
        d = date.getDate();
        day = date.getDay();
        days = new Array('Sun', 'Mon, ', 'Tues, ', 'Wed, ', 'Thu, ', 'Fri, ', 'Sat');
        h = date.getHours();

        if (h < 10) {
            h = "0" + h;
        }

        m = date.getMinutes();

        if (m < 10) {
            m = "0" + m;
        }

        s = date.getSeconds();

        if (s < 10) {
            s = "0" + s;
        }

        result = '' + days[day] + ' ' + months[month] + ' ' + d + ' <br>' + h + ':' + m + ' ' + year + ':' + s;
        document.getElementById(id).innerHTML = result;
        setTimeout('date_time("' + id + '");', '1000');

        return true;
    }
</script>

3 个答案:

答案 0 :(得分:0)

尝试一下。

function hours12(date) { 
   return (date.getHours() + 24) % 12 || 12; 
}

答案 1 :(得分:0)

将功能更新为:

function date_time(id) {
    date = new Date();
    year = date.getFullYear();
    month = date.getMonth();
    months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec');
    d = date.getDate();
    day = date.getDay();
    days = new Array('Sun', 'Mon, ', 'Tues, ', 'Wed, ', 'Thu, ', 'Fri, ', 'Sat');
    h = date.getHours();
    if (h < 10) {
        h = "0" + h;
    }
    m = date.getMinutes();
    if (m < 10) {
        m = "0" + m;
    }
    s = date.getSeconds();
    if (s < 10) {
        s = "0" + s;
    }
    const pmOrAm = h > 12 ? "pm" : "am";
    const hoursIn12 = h > 12 ? h - 12 : h;
    result = '' + days[day] + ' ' + months[month] + ' ' + d + ' <br>' + hoursIn12 + ':' + m + pmOrAm + ' ' + year + ':' + s;

    document.getElementById(id).innerHTML = result;
    setTimeout('date_time("' + id + '");', '1000');
    return true;
}

答案 2 :(得分:0)

  

这么简单,试试看

   from24to12(hours: any) {
        return (hours > 12) ? hours - 12 : (hours == 0 ? 12 : hours);
    };

    getAmPm(hours: any) {
        return (hours < 12) ? "am" : "pm";
    };