JavaScript【静态方法、实例方法/to类、实例方法/get类、实例方法/set类、Math与Date实操、 JS时间戳、日期互相转换】(九)

news2024/11/17 23:35:51

 

目录

Math对象_静态方法三

Date对象

Date对象_静态方法

Date对象_实例方法/to类

 Date对象_实例方法/get类

Date对象_实例方法/set类

Math与Date实操

 JS时间戳、日期互相转换


 

Math对象_静态方法三

Math.random() 

Math.random() 返回0到1之间的一个伪随机数,可能等于0,但是一定小于1

Math.random() // 0.28525367438365223

 任意范围的随机数生成函数如下

function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}
getRandomArbitrary(5, 10)

返回随机字符实例

function random_str(length) {
  var ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  ALPHABET += 'abcdefghijklmnopqrstuvwxyz';
  ALPHABET += '0123456789-_';
  var str = '';
  for (var i=0; i < length; ++i) {
    var rand = Math.floor(Math.random() * ALPHABET.length);
    str += ALPHABET.substring(rand, rand + 1);
 }
  return str;
}
random_str(6) // "GEghrr"

三角函数方法

Math 对象还提供一系列三角函数方法

Math.sin():返回参数的正弦(参数为弧度值)
Math.cos():返回参数的余弦(参数为弧度值)
Math.tan():返回参数的正切(参数为弧度值)
Math.asin():返回参数的反正弦(返回值为弧度值)
Math.acos():返回参数的反余弦(返回值为弧度值)
Math.atan():返回参数的反正切(返回值为弧度值)

Date对象

Date 对象是 JavaScript 原生的时间库。它以1970年1月1日00:00:00 作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒)

普通函数的用法 

Date 对象可以作为普通函数直接调用,返回一个代表当前时间的字符串

Date()
'Tue Oct 26 2022 10:31:34 GMT+0800 (中国标准时间)'

 温馨提示

即使带有参数, Date 作为普通函数使用时,返回的还是当前时间

Date(2000, 1, 1)
// 'Tue Oct 26 2022 10:31:34 GMT+0800 (中国标准时间)'

 构造函数的用法

Date 还可以当作构造函数使用。对它使用 new 命令,会返回一个 Date 对象的实例。如果不加参数,实例代表的就是当前时间

var today = new Date();

作为构造函数时, Date 对象可以接受多种格式的参数,返回一个该参数对应的时间实例

 

// 参数为时间零点开始计算的毫秒数
new Date(1635215676627)
// Tue Oct 26 2021 10:34:36 GMT+0800 (中国标准时间)
// 参数为日期字符串
new Date('January 6, 2020');
// Mon Jan 06 2020 00:00:00 GMT+0800 (中国标准时间)
// 参数为多个整数,
// 代表年、月、日、小时、分钟、秒、毫秒
new Date(2020, 0, 1, 0, 0, 0, 0)
// Wed Jan 01 2020 00:00:00 GMT+0800 (中国标准时间)

各种类型的参数

new Date('2022-2-15')
new Date('2022/2/15')
new Date('02/15/2022')
new Date('2022-FEB-15')
new Date('FEB, 15, 2022')
new Date('FEB 15, 2022')
new Date('Feberuary, 15, 2022')
new Date('Feberuary 15, 2022')
new Date('15 Feb 2022')
new Date('15, Feberuary, 2022')

日期的运算

var d1 = new Date(2000, 2, 1);
var d2 = new Date(2000, 3, 1);
d2 - d1
// 2678400000   毫秒

Date对象_静态方法

时间戳 

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间 1970年01月01日08时00分00秒)起至现在的总秒数。

格林威治和北京时间就是时区的不同

Unix是20世纪70年代初出现的一个操作系统,Unix认为1970年1月 1日0点是时间纪元。JavaScript也就遵循了这一约束

Date.now() 

Date.now 方法返回当前时间距离时间零点(1970年1月1日 00:00:00 UTC)的毫秒数,相当于 Unix 时间戳乘以1000

Date.now();   // 1635216733395

 Date.parse()

Date.parse 方法用来解析日期字符串,返回该时间距离时间零点 (1970年1月1日 00:00:00)的毫秒数

Date.parse('Aug 9, 2022')
Date.parse('January 26, 2022 13:51:50')
Date.parse('Mon, 25 Dec 2022 13:30:00 GMT')
Date.parse('Mon, 25 Dec 2022 13:30:00 +0430')
Date.parse('2022-10-10')
Date.parse('2022-10-10T14:48:00')

 如果解析失败,返回 NaN

 Date.parse('xxx') // NaN

Date对象_实例方法/to类

Date 的实例对象,有几十个自己的方法,分为三类 

to 类:从 Date 对象返回一个字符串,表示指定的时间。

get 类:获取 Date 对象的日期和时间。

set 类:设置 Date 对象的日期和时间。

Date.prototype.toUTCString() 

toUTCString 方法返回对应的 UTC 时间,也就是比北京时间晚8个小时

var d = new Date(2022, 0, 1);
d.toUTCString()
// "Fri, 31 Dec 2021 16:00:00 GMT"

Date.prototype.toDateString()

toDateString 方法返回日期字符串(不含小时、分和秒)

var d = new Date(2022, 0, 1);
d.toDateString() // "Sat Jan 01 2022"

 Date.prototype.toTimeString()

toTimeString 方法返回时间字符串(不含年月日)

var d = new Date(2022, 0, 1);
d.toTimeString() // 00:00:00 GMT+0800 (中国标准时间)

Date.prototype.toLocaleDateString()

toLocaleDateString 方法返回一个字符串,代表日期的当地写法(不含小时、分和秒)

var d = new Date(2022, 0, 1);
d.toLocaleDateString() // 2022/1/1

 Date.prototype.toLocaleTimeString()

toLocaleTimeString 方法返回一个字符串,代表时间的当地写法(不含年 月日)

var d = new Date(2022, 0, 1);
d.toLocaleTimeString() // 上午12:00:00

 Date对象_实例方法/get类

Date 对象提供了一系列 get* 方法,用来获取实例对象某个方面的值

实例方法get类

getTime():返回实例距离1970年1月1日00:00:00的毫秒数
getDate():返回实例对象对应每个月的几号(从1开始)
getDay():返回星期几,星期日为0,星期一为1,以此类推
getYear():返回距离1900的年数
getFullYear():返回四位的年份
getMonth():返回月份(0表示1月,11表示12月)
getHours():返回小时(0-23)
getMilliseconds():返回毫秒(0-999)
getMinutes():返回分钟(0-59)
getSeconds():返回秒(0-59)
var d = new Date('January 6, 2022');
d.getDate() // 6
d.getMonth() // 0
d.getYear() // 122
d.getFullYear() // 2022

编写函数获得本年度剩余天数

function leftDays() {
  var today = new Date();
  var endYear = new Date(today.getFullYear(), 11, 31, 23, 59, 59, 999);
  var msPerDay = 24 * 60 * 60 * 1000;
  return Math.round((endYear.getTime() - today.getTime()) / msPerDay);
}

Date对象_实例方法/set类

Date 对象提供了一系列 set* 方法,用来设置实例对象的各个方面

setDate(date) :设置实例对象对应的每个月的几号(1-31)
setYear(year) : 设置距离1900年的年
setFullYear(year [, month, date]) :设置四位年份
setHours(hour [, min, sec, ms]) :设置小时(0-23)
setMilliseconds() :设置毫秒(0-999)
setMinutes(min [, sec, ms]) :设置分钟(0-59)
setMonth(month [, date]) :设置月份(0-11)
setSeconds(sec [, ms]) :设置秒(0-59)
setTime(milliseconds) :设置毫秒时间戳
var d = new Date ('January 6, 2022');
d // Thu Jan 06 2022 00:00:00 GMT+0800 (中国标准时间)
d.setDate(9)
d // Sun Jan 09 2022 00:00:00 GMT+0800 (中国标准时间)
var d = new Date();
// 将日期向后推1000天
d.setDate(d.getDate() + 1000);
// 将时间设为6小时后
d.setHours(d.getHours() + 6);
// 将年份设为去年
d.setFullYear(d.getFullYear() - 1);

Math与Date实操

编写一个函数,获得一个十六进制的随机颜色的字符串(例 如:#20CD4F)方法

1、 编写一个函数

2、 十六进制:#000000 #FFFFFF: #0123456789abcdef

3 、十六进制的颜色之组成位数:6位

function genColor(){
    var str="0123456789abcdef";
    var color="#";
    for(var i=0;i<6;i++){
        var num=Math.floor(Math.random()*str.length);
        color=color+str[num];
   }
    return color;
}

 JS时间戳、日期互相转换

1、 时间戳转日期

2 、日期转时间戳

// 时间戳转日期
function timestampToTime(timestamp) {
    var date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
    var Y = date.getFullYear() + '-';
    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
    var D = date.getDate() + ' ';
    var h = date.getHours() + ':';
    var m = date.getMinutes() + ':';
    var s = date.getSeconds();
    return Y + M + D + h + m + s;
}
// 日期转时间戳
var date = new Date('2020-01-01 18:55:49:123');
var time1 = date.getTime();

 引入时间戳,生成可控长度的随机数

1、 随机数长度控制,定义一个长度变量(length),生成可控长度的随机数

2、 引入时间戳

3、 36进制:0-F (0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ)

function genID(length){
   return Math.random().toString().substr(2,length) + Date.now().toString(36);
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/837857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python中几个有趣的函数和推导式

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 一、range()函数 1、range()通常用来做循环。 2、range()生成器的特性。 例子&#xff1a;假如range&#xff08;&#xff09;中使用的数值特别大&#xff0c;为100000000000000000000000000000&#xff1f; python解释…

同比增长50%!W/AR HUD赛道持续向好背后的变化

在智能座舱进入域控制器时代的同时&#xff0c;带来人机交互体验升级的HUD赛道&#xff0c;同样持续火热。 高工智能汽车研究院监测数据显示&#xff0c;2023年1-6月中国市场&#xff08;不含进出口&#xff09;乘用车前装标配W/AR HUD交付90.49万台&#xff0c;潜在选装规模6…

【深度学习_TensorFlow】梯度下降

写在前面 一直不太理解梯度下降算法是什么意思&#xff0c;今天我们就解开它神秘的面纱 写在中间 线性回归方程 如果要求出一条直线&#xff0c;我们只需知道直线上的两个不重合的点&#xff0c;就可以通过解方程组来求出直线 但是&#xff0c;如果我们选取的这两个点不在直…

使用 Amazon ECS Anywhere 在边缘部署 Amazon IoT Greengrass

1.概述 亚马逊云科技提供了完备的IoT服务能力&#xff0c;涵盖设备服务、连接和控制服务以及云端分析服务&#xff0c;是快速构建安全可靠、可扩展的 IoT 平台的常见选择。Amazon IoT Greengrass 边缘运行时和云服务&#xff0c;可帮助您在设备上构建、部署和管理 IoT 应用。A…

中小企业如何做好私域运营呢?

​通过在公域平台上进行引流到私域平台&#xff0c;流量一旦进来&#xff0c;后面再做活动就不需要进行推广的成本&#xff0c;从而进行多次复购。而在于公域平台&#xff0c;流量进来只是一次性&#xff0c;当它出去后可能就不会再记得你的这个产品或者这个店&#xff0c;即当…

NUEDC 2022 E - 声源定位跟踪系统

更好的阅读体验参考个人博客&#xff1a;NUEDC 2022 E | Framist’s Little House NUEDC 2022 E - 声源定位跟踪系统 省级大学生电子设计竞赛 一等奖作品 仓库地址&#xff1a;framist/NUEDC2022-E 求小星星♥(ˆ◡ˆԅ) fork from: framist/STemWinForHAL: 移植emWin与HAL库…

【React学习】—虚拟DOM两种创建方式(二)

【React学习】—虚拟DOM两种创建方式&#xff08;二&#xff09; 一、Hello React案例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, init…

初识网络(JavaEE初阶系列9)

目录 前言&#xff1a; 1.网络的发展史 1.1独立模式 1.2网络互联 1.3局域网LAN 1.4广域网WAN 2.网络通信基础 2.1IP地址 2.2端口号 3.认识协议 3.1协议分层 3.2分层的作用 3.3TCP/IP五层&#xff08;或四层&#xff09;模型 3.4OSI七层模型 3.5网络设备所在分层 …

Delphi Professional Crack,IDE插件开发和扩展IDE

Delphi Professional Crack,IDE插件开发和扩展IDE 构建具有强大视觉设计功能的单源多平台本机应用程序。 Delphi帮助您使用Object Pascal为Windows、Mac、Mobile、IoT和Linux构建和更新数据丰富、超连接、可视化的应用程序。Delphi Professional适合个人开发人员和小型团队构建…

MGRE综合

实验 一、实验思路 1.先按照上图配置IP地址及环回 2.写缺省使公网可通 3.让R1、R4、R5每台路由器均成为中心站点形成全连网状结构拓扑 4.让R1成为中心站点R2R3为分支站点 5.分区域宣告ospf之后更改ospf在虚拟接口Tunnel工作方式为broadcast及让R1 当选DR 二、上虚拟机操作…

2023奇安信天眼设备--面试题

1.在天眼分析平台网络协议中sip、dip、sport、dport字段表示的含义是什么&#xff1f; sip 源IP、dip 目的IP、sport 源端口、dport 目的端口 2.在天眼分析平台DNS协议中dns type字段表示的含义是? dns type表示DNS请求类型 0代表DNS请求&#xff0c;1代表DNS响应 3.dns_typ…

题解 | #1006.Touhou Red Red Blue# 2023杭电暑期多校5

1006.Touhou Red Red Blue 贪心/DP 题目大意 你将依次收到 n n n 个物品&#xff0c;他们具有颜色红、绿或蓝&#xff0c;记为 R , G , B R,G,B R,G,B 你有一个大小为 2 2 2 的物品栏。每当你收到一个物品&#xff0c;你可以考虑将其放入物品栏或直接丢弃 物品栏是一个栈…

JavaScript |(四)正则表达式 | 尚硅谷JavaScript基础实战

学习来源&#xff1a;尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 文章目录 &#x1f4da;正则表达式&#x1f4da;正则表达式字面量方式&#x1f4da;字符串&正则表达式&#x1f407;split()&#x1f407;search()&#x1f407;match()&#x1f407;replace()…

机器学习基础知识(1)

什么是机器学习 机器学习是一种通过输入大量数据来构建一种模型&#xff08;网络&#xff09;&#xff0c;这个训练好的模型将会被用来预测或执行某些操作&#xff0c;这个训练的过程和方法就是机器学习。 我们也可以理解为构建一个“函数”&#xff0c;使得这个函数面对我们…

python+django+mysql项目实践三(用户管理)

python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 用户列表展示 urls view models html <!DOCTYPE html> <html

c++ 速度之巅-位图算法,上亿数据的快速操作

问题&#xff1a; 有很多不重复的整数&#xff0c;其中最大值不超过40亿&#xff0c;最小值是0&#xff0c;要求判断某个指定的整数&#xff0c;是否在这个集合中。 最快的算法&#xff1a; 使用位图算法 使用2个字节(一个字节八位)&#xff0c;表示16个数&#xff08;0-15&am…

梯形速度曲线轨迹规划(速度前馈+PID、SCL+ ST代码)

S形速度曲线轨迹规划算法和应用详细介绍,请查看下面文章博客,这里不再赘述: S速度曲线轨迹规划(普通变频位置闭环控制算法详细介绍+SCL代码)_RXXW_Dor的博客-CSDN博客位置控制用PD控制器,详细内容介绍请查看下面博客文章:PD控制器算法详细解读_RXXW_Dor的博客-CSDN博客鉴…

【CSS】倾斜按钮

效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"/><meta name"viewport" content"widthdevice-…

[JAVAee]锁策略

目录 乐观锁与悲观锁 乐观锁 乐观锁的冲突检测 悲观锁 读锁与写锁 重量级锁与轻量级锁 重量级锁 轻量级锁 自旋锁 公平锁与非公平锁 可重入锁与不可重入锁 乐观锁与悲观锁 乐观锁 在乐观锁中,假设数据并不会发生冲突,在正式提交数据时会对数据进行冲突检测,如果发…