起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1365|回复: 2

[结贴] 铛铛事件中怎么曲英文的月份变成比如 3月24日

[复制链接]

26

主题

43

帖子

119

积分

初级会员

Rank: 2

积分
119
QQ
发表于 2017-4-3 15:57:12 | 显示全部楼层 |阅读模式
本帖最后由 风竹 于 2017-4-4 16:23 编辑

define(function(require) {
        var IM = require("../base/js/im");
        var getLatestChat = function(dialog) {
                var text = "";
                var user;
                if(dialog.peer.peer.type === 'user'){
                        user = IM.getUser(dialog.peer.peer.id);
                }
                if(user&&user.isBot){
                        return text;
                }
                if (dialog.showSender) {
                        text = dialog.sender + ":" + dialog.text;
                } else {
                        text = dialog.text === "Photo" ?"图片" : (dialog.text==="Audio" ? "语音" : dialog.text);
                }
                return (getCharLength(text) > 32 ? subCharString(text, 32) + "..." : text);
        };

        // 把双字节的替换成两个单字节的然后再获得长度
        var getCharLength = function(str) {
                if (str === null)
                        return 0;
                if (typeof str != "string") {
                        str += "";
                }
                return str.replace(/[^\x00-\xff]/g, "01").length;
     };

        // 按单字节长度截取字符
        var subCharString = function(str, len) {
                if (!str || !len) {
                        return '';
                }
                // 预期计数:中文2字节,英文1字节
                var a = 0;
                // 循环计数
                var i = 0;
                // 临时字串
                var temp = '';
                for (i = 0; i < str.length; i++) {
                        if (str.charCodeAt(i) > 255) {
                                // 按照预期计数增加2
                                a += 2;
                        } else {
                                a++;
                        }
                        // 如果增加计数后长度大于限定长度,就直接返回临时字符串
                        if (a > len) {
                                return temp;
                        }
                        // 将当前内容加到临时字符串
                        temp += str.charAt(i);
                }
                // 如果全部是单字节字符,就直接返回源字符串
                return str;

        };

        // 得到最后发送消息的时间(XX分钟前、XX小时前或X月Y日)
        var getDate = function(str) {
                if (str == "Now") {
                        return "刚刚";
                }
                if (str == "Yest") {
                        return "昨天";
                }
                if (str.substr(str.length - 3, 3) == "min") {
                        return str.replace("min", "分钟前").replace(" ", "");
                }
                if (str.substr(str.length - 3, 3) == "hrs") {
                        return str.replace("hrs", "小时前").replace(" ", "");
                }
                //("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SPT", "OCT", "NOV", "DEC");("1月", "2", "3月", "4", "5", "6", "7", "8", "9", "10", "11", "12")
                var m = new Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SPT", "OCT", "NOV", "DEC");
                for (var i = 0; i < m.length; i++) {
                        if (str.substr(str.length - 3, 3) == m) {
                                var result = (i + 1) + "月";
                                for (var j = 0; j < str.length; j++) {
                                        if (str.substr(j, 1) == " ") {
                                                break;
                                     }
                                        result += str.substr(j, 1);
                                }
                                return result + "日";
                        }
                }
                return str;       
                注:现在返回的日期格式为  26 mar   希望返回  03月 26 日 这种格式
/* for (var i = 0; i < m.length; i++) {
                if (str.substr(str.length - 3, 3) == m) {
                        var result = (i + 1) + "月";
                        alert(m.length);
                        for (var j = 0; j < str.length; j++) {
                                if (str.substr(j, 1) == " ") {
                                        break;
                                }
                                result += str.substr(j, 1);
                        }
                        return result + "日";
                }
        }*/
        };
       

        var loadData = function(dataComp,newData,getRowCallback) {
                var oldDataCount = dataComp.getCount();
                if(oldDataCount === 0){
                        var rows = [];
                        for(var index = 0;index < newData.length ;index++){
                                var row = getRowCallback.call(this,newData[index]);
                                rows.push(row);
                        }
                        dataComp.loadData({
                                rows : rows
                        });
                        return;
                }else if(newData.length === 0){
                        dataComp.clear();
                        return;
                }
               
                for(var index = 0;index < newData.length ;index++){
                        var item = newData[index];
                        var rows = dataComp.find([ "fID" ], [item.peer.peer.id]);
                        if(rows.length > 0){
                                var currentIndex = dataComp.getRowIndex(rows[0]);
                                if(currentIndex != index){
                                        dataComp.moveRowTo((dataComp.datas.get())[currentIndex],(dataComp.datas.get())[index]);
                                }
                                getRowCallback.call(this,item,(dataComp.datas.get())[index]);
                        }else{
                                var row = getRowCallback.call(this,item);
                                dataComp.loadData([row], true,null,index);
                        }
                }
                for(var removeIndex = newData.length -1;removeIndex < dataComp.getCount(); removeIndex ++){
                        dataComp.datas.splice(newData.length);
                }
        };
       
        return {
                loadData: loadData,
                getDate: getDate,
                subCharString: subCharString,
                getCharLength: getCharLength,
                getLatestChat: getLatestChat
        };
});

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-4-5 10:48:15 | 显示全部楼层
这个需要自己拼接
var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间
var result=myDate.getFullYear()+'-'+(myDate.getMonth()+1)+'-'+myDate.getDate() ;//拼写出的日期2015-3-27
回复 支持 反对

使用道具 举报

26

主题

43

帖子

119

积分

初级会员

Rank: 2

积分
119
QQ
 楼主| 发表于 2017-4-6 11:18:39 | 显示全部楼层
半导体 发表于 2017-4-5 10:48
这个需要自己拼接
var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)

感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-23 06:32 , Processed in 0.105165 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表