zoukankan      html  css  js  c++  java
  • 显示时间格式

    要求显示某个时间的格式如下:

    12:34
    昨天 12:34
    前天 20:10
    本周一 21:15
    上周二 10:21
    3月21日 21:14
    2010年10月21日 19:32
    

    通过JS输出可编码如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>TimeTest4</title>
        <!--<script src="http://www.cnblogs.com/js/jquery-1.6.1-vsdoc.js" type="text/javascript"></script>-->
        <script src="http://www.cnblogs.com/js/jquery-1.6.1.js" type="text/javascript"></script>
        <script type="text/javascript">
            /*------------------------------------*\
            CJB: Extentions
            \*------------------------------------*/
            Date.prototype.format = function (format) {
                /*
                * eg:format="YYYY-MM-dd hh:mm:ss";
                */
                var o = {
                    "M+": this.getMonth() + 1,  //month
                    "d+": this.getDate(),       //day
                    "h+": this.getHours(),    //hour
                    "m+": this.getMinutes(),  //minute
                    "s+": this.getSeconds(), //second
                    "q+": Math.floor((this.getMonth() + 3) / 3),  //quarter
                    "S": this.getMilliseconds() //millisecond
                }
    
                if (/(y+)/.test(format)) {
                    format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
                }
    
                for (var k in o) {
                    if (new RegExp("(" + k + ")").test(format)) {
                        format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
                    }
                }
                return format;
            };
        </script>
        <script type="text/javascript">
            /*------------------------------------*\
            CJB: Timeline
            \*------------------------------------*/
            $(function () {
                for (var i = 0; i < 30; i++) {
                    var mil = new Date().getTime() - 86400000 * i;
                    $('<p />').html(txtOfTimeline(mil)).appendTo($('#msgbox'));
                }
            });
    
            function txtOfTimeline(millisecond) {
                var now = new Date();
                var dt = new Date(millisecond);
    
                //本周第一天
                var WeekFirstDay = new Date(startDay(new Date(now - (now.getDay() - 1) * 86400000)));
                debug("本周第一天: " + WeekFirstDay.format('yyyy-MM-dd hh:mm:ss S'));
                //上周第一天
                var PreviousFirstWeekDay = new Date(startDay(new Date(WeekFirstDay - 86400000 * 7)));
                debug("上周第一天: " + PreviousFirstWeekDay.format('yyyy-MM-dd hh:mm:ss S'));
                //本月第一天
                var MonthFirstDay = new Date(startDay(new Date(now.getFullYear(), now.getMonth(), 1)));
                debug("本月第一天: " + MonthFirstDay.format('yyyy-MM-dd hh:mm:ss S'));
                //今天
                var Today = new Date(startDay(now));
                debug("今天: " + Today.format('yyyy-MM-dd hh:mm:ss S'));
                //昨天
                var Yesterday = new Date(startDay(new Date(now - 86400000)));
                debug("昨天: " + Yesterday.format('yyyy-MM-dd hh:mm:ss S'));
                //前天
                var Beforeyesterday = new Date(startDay(new Date(now - 86400000 * 2)));
                debug("昨天: " + Beforeyesterday.format('yyyy-MM-dd hh:mm:ss S'));
    
                //日期判断
                if (dt > Today) {
                    //12:34
                    return dt.format('hh:mm');
                } else if (dt > Yesterday) {
                    return dt.format('昨天 hh:mm');
                } else if (dt > Beforeyesterday) {
                    return dt.format('前天 hh:mm');
                } else if (dt > WeekFirstDay) {
                    switch (dt.getDay()) {
                        case 1:
                            return dt.format('本周一 hh:mm');
                            break;
                        case 2:
                            return dt.format('本周二 hh:mm');
                            break;
                        case 3:
                            return dt.format('本周三 hh:mm');
                            break;
                        case 4:
                            return dt.format('本周四 hh:mm');
                            break;
                        case 5:
                            return dt.format('本周五 hh:mm');
                            break;
                        case 6:
                            return dt.format('本周六 hh:mm');
                            break;
                        case 0:
                            return dt.format('本周日 hh:mm');
                            break;
                        default:
                            return dt.format('MM月dd日 hh:mm');
                            break;
                    }
                } else if (dt > PreviousFirstWeekDay) {
                    switch (dt.getDay()) {
                        case 1:
                            return dt.format('上周一 hh:mm');
                            break;
                        case 2:
                            return dt.format('上周二 hh:mm');
                            break;
                        case 3:
                            return dt.format('上周三 hh:mm');
                            break;
                        case 4:
                            return dt.format('上周四 hh:mm');
                            break;
                        case 5:
                            return dt.format('上周五 hh:mm');
                            break;
                        case 6:
                            return dt.format('上周六 hh:mm');
                            break;
                        case 0:
                            return dt.format('上周日 hh:mm');
                            break;
                        default:
                            return dt.format('MM月dd日 hh:mm');
                            break;
                    }
                } else if (dt > MonthFirstDay) {
                    return dt.format('MM月dd日 hh:mm');
                }
    
                return dt.format('yyyy年MM月dd日 hh:mm');
    
            }
    
            function startDay(startTime) {
                return Date.parse(startTime.getFullYear() + "-" + (startTime.getMonth() + 1) + "-" + startTime.getDate() + " 00:00:00");
            }
    
            function endDay(endTime) {
                return Date.parse(endTime.getFullYear() + "-" + (endTime.getMonth() + 1) + "-" + endTime.getDate() + " 23:59:59");
            }
    
            function debug(txt) {
                if (window.console && window.console.log)
                    window.console.log('debug: ' + txt);
            }
        </script>
    
    </head>
    <body>
        <div id="msgbox">
        </div>
    </body>
    </html>
    
  • 相关阅读:
    wpf如何将图片设置为窗体的背景
    C#用Oracle.DataAccess中连接Oracle要注意版本问题!
    C#格式化数值结果表
    将字符串的16进制转换成byte[]
    Java各个类型与byte[]的转换
    记录下 Jquery的使用
    页面div与顶部有缝隙问题
    Js 转换Json返回的时间格式(转)
    Div垂直居中水平居中
    C# 日期格式大全
  • 原文地址:https://www.cnblogs.com/chenjunbiao/p/2060277.html
Copyright © 2011-2022 走看看