JavaScript从零开始第九天笔记

一.时间(Date)内置对象

Date是一个内置对象,用于创建和操作日期和时间。
创建方法如下,注意一下内部的传的参数。

var currentDate = new Date(); // 创建一个包含当前日期和时间的Date对象
var specificDate = new Date(2022, 5, 20); // 创建一个特定日期的Date对象,月份从0开始计数,即0表示一月
var specificDateTime = new Date(2022, 5, 20, 10, 30, 0); // 创建一个特定日期和时间的Date对象
          一个参数: 填数字(毫秒)
        var dt = new Date(5000000)
          一个参数: 填时间格式字符串
        var dt2 = new Date("2023-07-15")
        console.log(dt2)// 2023-07-15  08:00:00-000

1.getFullYear()

用于获取日期中的完整四位数的年份。

var Date1 = new Date();
var year = Date1.getFullYear();
console.log(year); // 输出当前年份,如2023

2.getYear()

用于获取日期中的两位数的年份
然而,由于getYear()方法存在一些问题和不确定性,不推荐使用。在1999年以前,getYear()返回的是相对于1900年的年份。而在1999年及以后,getYear()返回的是相对于1900年的年份减去100。这种不一致性导致了getYear()方法的混淆和错误使用。

3.getMonth()

getMonth()方法是用来获取日期对象的月份值的。
它返回的是一个基于0的整数值,即从0开始的一月到11结束的十二月。

var date = new Date();
var month = date.getMonth();
console.log(month); // 0-11之间的一个整数,表示当前月份

4.getDate()

getDate()方法是用来获取日期对象的日期值的。
它返回的是一个基于1的整数值,即从1开始的每个月的日期。

var date = new Date();
var day = date.getDate();

console.log(day); // 当前日期的值 今天是16,所以输出16

5.getHours()

getHours()方法是用来获取日期对象的小时值的。它返回的是一个基于24小时制的整数值,即从0到23的范围。

var date = new Date();
var hours = date.getHours();

console.log(hours); // 当前小时的值 输出16

6.getMinutes()

getMinutes()方法是用来获取日期对象的分钟值的。它返回的是一个基于60分钟制的整数值,即从0到59的范围。

var date = new Date();
var minutes = date.getMinutes();

console.log(minutes); // 当前分钟的值 输出41

7.getSeconds()

getSeconds()方法是用来获取日期对象的秒值的。它返回的是一个基于60秒制的整数值,即从0到59的范围。

var date = new Date();
var seconds = date.getSeconds();

console.log(seconds); // 当前秒的值  30

8.getMilliseconds()

JavaScript中的getMilliseconds()方法是用来获取日期对象的毫秒值的。它返回的是一个基于1000毫秒制的整数值,即从0到999的范围。

var date = new Date();
var milliseconds = date.getMilliseconds();

console.log(milliseconds); // 当前毫秒的值   283

9.getTime()

getTime()方法是用来获取日期对象的时间戳的。它返回的是一个基于1970年1月1日午夜(UTC时间)至今的毫秒数。

var date = new Date();
var timestamp = date.getTime();

console.log(timestamp); // 当前时间的时间戳   1692175570784

10.getDay()

getDay()方法是用来获取日期对象中的星期几的方法。它返回一个整数,代表星期几,其中0代表星期日,1代表星期一,依此类推,6代表星期六。

var date = new Date();
var day = date.getDay();

console.log(day); // 当前日期的星期几  3

11.getUTCHours()

getUTCHours()方法是用来获取日期对象的世界协调时间(UTC)的小时部分的方法。它返回一个整数,表示当前日期对象的UTC小时。

var date = new Date();
var hours = date.getUTCHours();

console.log(hours); // 当前日期的UTC小时   8   

中国相当于东8区

12.时间转字符的方法

1.toLocaleString()

将时间对象转换为本地日期和时间字符串。它接受一些可选参数,用于指定日期和时间的格式。

var date = new Date();
console.log(date.toLocaleString()); // 根据本地设置,输出日期和时间的字符串表示
console.log(date.toLocaleString("en-US")); // 输出英语美国格式的日期和时间字符串
console.log(date.toLocaleString("ja-JP")); // 输出日语日本格式的日期和时间字符串
console.log(date.toLocaleString("zh-CN"));//输出中国汉语格式的日期和时间字符串

2.toString()

将时间对象转换为表示时间的字符串。它返回一个包含日期和时间的字符串,格式会根据浏览器和操作系统的设置而有所不同。

var date = new Date();
var dateString = date.toString(); // 时间字符串

console.log(dateString);//Wed Aug 16 2023 16:59:35 GMT+0800 (中国标准时间)

3.toLocaleDateString()

用于将日期对象转换为本地化的日期字符串。
语法:date.toLocaleDateString([locales[, options]])
参数:
locales(可选):一个字符串或字符串数组,用于指定要使用的语言环境或语言环境首选项的数组。例如:“en-US"表示美国英语,“zh-CN"表示中国中文。如果未提供此参数,则使用执行代码所在的语言环境。
options(可选):一个对象,用于指定自定义的格式选项。可以包含以下属性:
weekday:字符串,表示要包含的星期几的显示方式,可选值为:“narrow”(缩写)、“short”(短格式)或"long”(完整格式)。
year:字符串,表示要包含的年份的显示方式,可选值为:“numeric”(数字年份)或"2-digit”(2位数字年份)。
month:字符串,表示要包含的月份的显示方式,可选值为:“numeric”(数字月份)、“2-digit”(2位数字月份)、“narrow”(缩写)或"short"(短格式)。
day:字符串,表示要包含的日期的显示方式,可选值为:“numeric”(数字日期)或"2-digit"(2位数字日期)。

const date = new Date();
console.log(date.toLocaleDateString("en-US")); // 输出美国英语格式的日期字符串
console.log(date.toLocaleDateString("zh-CN")); // 输出中国中文格式的日期字符串

4.toLocaleTimeString()

将日期对象转换为本地化的时间字符串。

const date = new Date();
const options = {hour: 'numeric', minute: 'numeric', second: 'numeric'};
console.log(date.toLocaleTimeString("en-US", options)); // 输出美国英语格式的时间字符串,包含小时、分钟和秒钟

13.一道关于时间的题

对于上一次看过的内容和现在的时间进行比较,小于零返回“见鬼了”,大于零小于一分钟就返回“刚刚”,大于一分钟则返回于上次看的时间。

  var str = "Wed Aug 19 11:40:10 +0800 2023"
    function sinaTime(str) {
      var dt1 = new Date()
      var dt2 = new Date(str)
      var asbdt = dt1 - dt2//
      console.log(asbdt)

      if (0 > asbdt) {
        return "见鬼了"
      }
      else if (0 <= asbdt && asbdt < 60 * 1000) {
        return "刚刚"
      }
      else if (60 * 1000 <= asbdt && asbdt < 60 * 60 * 1000) {
        // var m = Math.floor(asbdt / 1000 / 60)
        var m = new Date(asbdt).getMinutes()//1970-01-01 08:02:30
        return `${m}分钟前`
      }
      else if (asbdt >= 60 * 60 * 1000) {
        var mo = (dt2.getMonth() + 1 + "").padStart(2, "0")
        var d = (dt2.getDate() + "").padStart(2, "0")
        var h = dt2.getHours().toString().padStart(2, "0")
        var mu = dt2.getMinutes().toString().padStart(2, "0")
        var s = dt2.getSeconds().toString().padStart(2, "0")
        return `${mo}-${d}  ${h}:${mu}:${s}`
      }
    }
    var re = sinaTime(str)
    console.log(re)

14.修改时间的设置。

我们可以将上面的方法里的get改为set,使用日期对象方法来修改时间设置。

var date1 = new Date();
date1.setDate(date1.getDate() + 1);
console.log(date1); // 输出明天的日期
var date2 = new Date();
date2.setMonth(date2.getMonth() + 1);
console.log(date2); // 输出一个月后的同一天的日期
var date3 = new Date();
date3.setHours(15);
console.log(date3); // 输出下午3点的时间
var date4 = new Date();
date4.setMilliseconds(date4.getMilliseconds() + 5000);
console.log(date4); // 输出当前时间加上5000毫秒后的时间

二.正则表达式(RegExp)内置对象

专门用来操作字符串

1.字符匹配

1.直接匹配字符

在正则表达式中直接写入要匹配的字符,例如 /a/ 表示匹配字符’a’。

    var regx = /abcd/;
     var regx2 = new RegExp("abc")
       var str = "abcd"
     console.log(regx.test(str))//输出 true

2.字符组

使用方括号 [] 来表示字符组,可以在字符组中列出多个字符,表示匹配其中任意一个字符。例如 /[abc]/ 表示匹配字符 ‘a’、‘b’ 或 ‘c’。

    var regx = /[abc]/;
      var str = "abcd"
     console.log(regx.test(str))//输出 true

3.范围

在字符组内使用连字符 - 可以指定一个字符范围。例如 /[a-z]/ 表示匹配任意小写字母。

     var regx = /[a-z]/;
      var str = "abcd"
     console.log(regx.test(str))//输出 true

4.反向字符组

在字符组内使用脱字符 ^ 表示反向字符组,表示匹配除了字符组内列出的字符之外的任意字符。例如 /[^0-9]/ 表示匹配任意非数字字符。

     var regx = /[^0-9]/;
      var str = "abcd"
     console.log(regx.test(str))//输出 true

2.重复匹配

1.重复次数

使用花括号 {} 来指定重复次数。例如 /a{3}/ 表示匹配连续出现 3 次字符 ‘a’。

     var regx = /a{3}/;
      var str = "aaab"
     console.log(regx.test(str))//输出 true

2.重复范围

使用花括号 {} 并指定最小和最大重复次数,中间使用逗号分隔。例如 /a{2,5}/ 表示匹配连续出现 2 到 5 次字符 ‘a’。

 var regx =  /a{2,5}/;
      var str = "aab"
      var str2 ="aaaaaah"
     console.log(regx.test(str))//输出 true
     console.log(regx.test(str2))//输出 true

3.通配符

使用星号 * 表示匹配前一个字符出现任意次数(包括 0 次)。例如 /ab*c/ 表示匹配 ‘ac’、‘abc’、‘abbc’ 等。

    var regx =  /ab*c/;
      var str = "acab"
      var str2 ="abccc"
     console.log(regx.test(str))//输出 true
     console.log(regx.test(str2))//输出 true

3.特殊字符

1.边界字符

使用圆括号 () 来表示边界,例如 /^abc/ 表示匹配以 ‘abc’ 开头的字符串。

   var regx = /^abc/ ;
      var str = "aabc"
      var str2 ="abccc"
     console.log(regx.test(str))//输出 flase
     console.log(regx.test(str2))//输出 true

2.或字符

使用竖线 | 来表示或的关系,例如 /cat|dog/ 表示匹配 ‘cat’ 或 ‘dog’。

   var regx = /cat|dog/  ;
      var str = "catdog1123"
      var str2 ="cat2331"
     console.log(regx.test(str))//输出 true
     console.log(regx.test(str2))//输出 true

3.量词字符

使用问号 ? 来表示前一个字符可选。例如 /co?l/ 表示匹配 ‘cl’ 或 ‘col’。

  var regx =  /co?l/  ;
      var str = "cl"
      var str2 ="col"
     console.log(regx.test(str))//输出 true
     console.log(regx.test(str2))//输出 true

4.转义字符

1.字符转义:使用反斜杠 \ 后跟要转义的字符来匹配该字符本身。例如,/./ 表示匹配一个点字符。
2.特殊字符转义:使用反斜杠 \ 后跟特殊字符的转义序列来匹配特殊字符。例如,/\d/ 表示匹配一个数字字符,/\s/ 表示匹配一个空白字符。
3.Unicode 转义:使用反斜杠 \u 后跟四位十六进制数来匹配 Unicode 字符。例如,/\u0041/ 表示匹配字符 ‘A’。
4.反向引用:使用反斜杠 \ 后跟数字 n 来引用前面的捕获组。例如,/(abc)\1/ 表示匹配 ‘abcabc’,其中 \1 引用了第一个捕获组。
需要注意的是,在JavaScript中,反斜杠 \ 本身也是一个转义字符,因此在正则表达式中使用反斜杠需要进行双重转义,即使用两个反斜杠 \ 来表示一个反斜杠字符。
例如,要匹配一个反斜杠字符本身,需要使用 / \ /。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值