JS学习day07--时间对象和字符串对象

1、时间对象

1、时间对象
var d = new Date(); // 没有传参,创建的是当前电脑此时此刻的时间
console.log(d); // 它是一个对象,里面有很多的属性和方法

console.log(d.getFullYear()); // 年
console.log(d.getMonth() + 1); // 月 返回0--11,代表1--12
console.log(d.getDate()); // 日

console.log(d.getDay()); // 星期 返回0--6,代表周日--周六

console.log(d.getHours()); // 时
console.log(d.getMinutes()); // 分
console.log(d.getSeconds()); // 秒

案例:数字时钟

2、时间戳

返回1970 年 1 月 1 日午夜(零时)开始到现在经过的毫秒数

// 方式一
var d = new Date();
console.log(d.getTime()); // 1607394537322

// 方式二 IE8及以下不支持
console.log(Date.now()); // 1607394597363
3、本地格式时间
var d = new Date();
console.log(d);

// 英文
console.log(d.toString());
console.log(d.toDateString());
console.log(d.toTimeString());

// 本地时间
console.log(d.toLocaleString()); // 2020/12/8 上午10:32:42
console.log(d.toLocaleDateString()); // 2020/12/8
console.log(d.toLocaleTimeString()); // 上午10:33:34
4、创建特定时间
var d = new Date(); // 创建当前时间

var d = new Date(2022, 9, 12, 12, 12, 12); // 传数字参数,月0--11 正常月减1
var d = new Date('2022,9,12,12:12:12'); // 传入字符串参数,正常的月
var d = new Date(-12121443243223); // 传入时间戳为参数

console.log(d.toLocaleString());

// -----------------------------
// 设置时间的某一部分
var d = new Date();
d.setFullYear(2022); // 设置年
d.setMonth(3); // 设置月
d.setDate(12); // 设置日
console.log(d.toLocaleString());

案例:倒计时

5、moment.js

http://momentjs.cn/

https://www.cnblogs.com/chaoyueqi/p/10337278.html

1、创建时间

var d = moment(); // 当前时间
var d = moment('2022-12-12'); // 有年月日
var d = moment('20221010'); // 有年月日
var d = moment('2022-12-12 10:05:12'); // 有年月日 时分秒
var d = moment(1213213321); // 接收一个时间戳

console.log(d.format('YYYY年MM月DD日 HH:mm:ss'));

2、时间解析

var d = moment();

console.log(d.format('YYYY年MM月DD日 HH:mm:ss')); // 2020年12月08日 13:37:59

console.log(d.format('YYYY')); // 年
console.log(d.format('MM')); // 月
console.log(d.format('DD')); // 日
console.log(d.format('d')); // 星期  返回0--6
console.log(d.format('HH')); // 小时
console.log(d.format('mm')); // 分钟
console.log(d.format('ss')); // 秒
console.log(d.format('x')); // 只含秒的时间戳
console.log(d.format('YYYY年MM月DD日 HH:mm:ss'));

3、时间其它操作

支持的度量有 years、months、weeks、days、hours、minutes 和 seconds

// 修改或获取时间某一部分
var d = moment().year(2022); // 创建时间修改年
var d = moment().set('year', 2030).set('month', 8); // 修时间改某一部分
console.log(d.format('YYYY年MM月DD日 HH:mm:ss'));

console.log(moment().year()); // 直接获取年

// --------------------------------
// 增加时间   add
var d = moment().add(5, 'years').add(3, 'months'); // 5年又3个月后的时间
console.log(d.format('YYYY年MM月DD日 HH:mm:ss'));

// -----------------------
// 减少时间  subtract
var d = moment().subtract(5, 'years'); // 5年前的今天
console.log(d.format('YYYY年MM月DD日 HH:mm:ss'));

// ----------------------
// 两个时间的比较
// 时间1.diff(时间2, 比较的值);
var s = moment().diff(moment('20001010'), 'years'); // 两个时间比较,返回差值年
console.log(s);

2、字符串对象

1、创建
// 1、字面量(推荐) 单双引号引着的就是字符串
var str1 = '平头哥';
console.log(str1);
console.log(typeof str1); // string

// 2、函数创建
var str2 = String('平头妹');
console.log(str2);
console.log(typeof str2); // string

// 3、构造函数创建 对象
var str3 = new String('老王'); // 对象
console.log(str3);
console.log(typeof str3); // object
2、长度、charAt、charCodeAt、String.fromCharCode
var str = '平头哥';

// 字符串.length
console.log(str.length); // 3

// --------------------------
// 返回对应下标的字符
// 字符串[下标]         IE7及以下返回undefined
// 字符串.charAt(下标)
console.log(str[1]); // 头
console.log(str.charAt(1)); // 头

// ----------------------------
// 字符串.charCodeAt(下标)    返回对应下标字符的Unicode编码
console.log(str.charCodeAt(0)); // 平 24179
console.log(str.charCodeAt(1)); // 头 22836
console.log(str.charCodeAt(2)); // 哥 21733

console.log('A'.charCodeAt(0)); // A--65
console.log('Z'.charCodeAt(0)); // Z--90

console.log('a'.charCodeAt(0)); // a--97
console.log('z'.charCodeAt(0)); // z--122

console.log('0'.charCodeAt(0)); // 0--48
console.log('9'.charCodeAt(0)); // 9--57

// ----------------------------
// String.fromCharCode(Unicode编码)  返回对应的字符
var v = String.fromCharCode(24179, 22836, 21733);
console.log(v); // 平头哥

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iHzOOBcQ-1607442329483)(e824b899a9014c08bcd720b8057b02087bf4f43b.jpg)]

3、indexOf和lastIndexOf
  • 字符串.indexOf(字符, 起始位置) 查找这个字符在这个字符串中的位置,如果有,返回它的下标,如果没有,返回-1。如果没有第二个参数,则从0开始查找

  • 字符串.lastIndexOf(字符, 起始位置) 同上,从右向左查找

  • 注意:只查找一次就结束

var str1 = 'abeadaf';

console.log(str1.indexOf('a')); // 0
console.log(str1.indexOf('a', 1)); // 3
console.log(str1.indexOf('a', 4)); // 5
console.log(str1.indexOf('z')); // -1
console.log(str1.indexOf('ad')); // 3

// -----------------------
console.log(str1.lastIndexOf('a')); // 5
console.log(str1.lastIndexOf('a', 4)); // 3

案例:字符串去重

var str = 'abcdabcd';

// 封装一个方法,实现字符串去重
function fn(str) {
    var newStr = ''; // 新的仓库

    // 循环原字符串
    for (var i = 0; i < str.length; i++) {
        var v = str[i]; // 原字符串中的每一个字符

        // 检查字符在新的仓库里面有不有,如果没有返回-1,没有则添加进仓库
        if (newStr.indexOf(v) === -1) {
            newStr += v;
        }
    }
    return newStr;
}
console.log(fn(str)); // abcd
4、字符串截取
var str = 'abcdefg';
// 字符串.slice(起始下标, 结束下标);  掌握
console.log(str.slice()); // abcdefg  没有参数,返回全部
console.log(str.slice(2)); // cdefg  有一个参数,从第一个参数处起,一直到最后
console.log(str.slice(2, 5)); // cde  有两个参数,从第一个参数处开始,到第二个参数处止,不包括第二个参数
console.log(str.slice(5, 2)); // ''  如果第二个参数比第一个小,则返回空字符串
console.log(str.slice(2, -2)); // cde  负数跟长度相加
// 字符串.substring(起始下标, 结束下标);
console.log(str.substring()); // abcdefg  没有参数,返回全部
console.log(str.substring(2)); // cdefg  有一个参数,从第一个参数处起,一直到最后
console.log(str.substring(2, 5)); // cde  有两个参数,从第一个参数处开始,到第二个参数处止,不包括第二个参数
console.log(str.substring(5, 2)); // cde 如果第二个参数比第一个小,且都为正数,则交换位置
console.log(str.substring(2, -2)); // ab 负数当作0
// 字符串.substr(起始下标, 截取的个数)
console.log(str.substr()); // abcdefg 没有参数返回全部
console.log(str.substr(2)); // cdefg 有一个参数,从第一个参数处起,一直到最后
console.log(str.substr(2, 3)); // cde 从第二个开始,截3个
console.log(str.substr(2, -2)); // '' 负数返回空字符
5、转大小写
  • 字符串.toLowerCase() 转小写
  • 字符串.toUpperCase() 转大写
var str = 'abcd';
var s = str.toUpperCase(); // 转大写
console.log(s); // ABCD

console.log(s.toLowerCase()); // 转小写 abcd
6、split
  • 字符串.split(参数); 以参数将字符串拆分成数组
var str = '2020-12-12'; // [2020, 12, 12]
console.log(str.split('-')); // [ "2020", "12", "12" ]
console.log(str.split()); // [ "2020-12-12" ]
console.log(str.split('')); // [ "2", "0", "2", "0", "-", "1", "2", "-", "1", "2" ]
  • 数组.join(参数); 将数组以参数拼接成字符串
var arr = [2020, 12, 12];
console.log(arr.join('-')); // 2020-12-12
console.log(arr.join()); // 2020,12,12
console.log(arr.join('')); // 20201212
7、replace
  • 字符串.replace(被替的字符, 替换的新的字符串) 只替一次
var str = 'hello web, hello java, hello UI';
var s = str.replace('hello', '你好');
console.log(s); // 你好 web, hello java, hello UI
8、trim
  • 字符串.trim(); 去掉字符串左右空格

  • IE8及以下不支持(以后正则解决)

var str = '   老王   ';

console.log('(' + str.trim() + ')');
console.log('(' + str + ')');

案例:

// 封装一个方法,把下面的字符串去重,并去除掉特殊字符按照数字在前字母在后的顺序排序字符串,最终返回12345fdsarg

var str = '1233fddfd&3434fdsaff&454545&4545444rfdsfds&545gdsgs';
console.log(abs(str)); // 12345fdsarg

function abs(str) {
    var s = fn(str); // 去重 s即去重以后的字符串   '123fd&4sa5rg'
    var left = ''; // 存数字
    var right = ''; // 存字母

    for (var i = 0; i < s.length; i++) {
        var v = s[i]; // 每一个字符
        if (v >= '0' && v <= '9') { // 数字
            left += v;
        }
        if (v >= 'a' && v <= 'z') { // 字母
            right += v;
        }
    }
    return left + right;
}


// 封装一个方法,实现字符串去重
function fn(str) {
    var newStr = ''; // 新的仓库

    // 循环原字符串
    for (var i = 0; i < str.length; i++) {
        var v = str[i]; // 原字符串中的每一个字符

        // 检查字符在新的仓库里面有不有,如果没有返回-1,没有则添加进仓库
        if (newStr.indexOf(v) === -1) {
            newStr += v;
        }
    }
    return newStr;
}
// 转驼峰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值