时间与时间戳转换及android和ios对时间识别的区别

news/2024/7/20 22:53:41 标签: 前端, javascript, android, ios, vue.js

注意:

"2021-05-01 12:53:59.55" 时间对象在 ios 中会出现 NaN-NaN1-NaN

需要将对象格式化为:"2021/05/01 12:53:59.55" 可同时兼容 androidios

javascript">
//将某时间转时间戳
/*
var time = new Date("2021-05-01 12:53:59.55")
"2021-05-01 12:53:59.55"时间对象在ios中会出现NaN-NaN1-NaN需要将对象格式为:"2021/05/01 12:53:59.55"同时兼容androidios
*/

var time = new Date("2021-05-01 12:53:59.55".replace(/-/g,"/"))

time.getTime()
console.log(time.getTime()) 

time.valueOf()
console.log(time.valueOf())

Number(time)
console.log(Number(time))

+time
console.log(+time)

Date.parse(time) //后三位固定为 000
console.log(Date.parse(time))   




//当前时间的时间戳:
new Date().getTime()
console.log(new Date().getTime())

new Date().valueOf()
console.log(new Date().valueOf())

Date.parse(new Date())
console.log(Date.parse(new Date()))

Number(new Date())
console.log(Number(new Date()))

+new Date()
console.log(+new Date())


获得 10 位数的时间戳,因为通过时间对象转换得到的时间戳都是 13 位的,有时候需要精确到秒的 10 位时间戳,那么要么截取前 10 位,要么除以 1000。

javascript">// 将13位时间戳除以1000然后再取整,得到10位时间戳数字
parseInt(+new Date()/1000)
 
// 将13位时间戳转换为字符串截取前10位,得到10位时间戳字符串
(+new Date()).toString().substring(0,10) // 截取第 0~9 位
(+new Date()).toString().substr(0,10)  // 从第 0 位开始截取 10 位

时间戳转换为时间对象

javascript">// 注意:参数中的时间戳必须是13位的
new Date(1619746630790)

// 将时间戳转换为更加直观形象的本地时间
new Date(1619746630790).toLocaleString()

var time = new Date(1619746630790)
console.log(time.toLocaleString())  // 2021/4/30 09:37:10

时间的格式化

javascript">
new Date().getFullYear() //年
new Date().getMonth() //月 从0开始
new Date().getDate()  //日 1月非01月
new Date().getHours() //时 1日非01日
new Date().getMinutes() //分 1分非01分
new Date().getSeconds() //秒 1秒非01秒
new Date().getDay() //周 0-6 周日-周六

/*
padStart(targetLength,padString) 用于头部补全,
padEnd(targetLength,padString) 用于尾部补全。

参数:
targetLength:目标长度。
如果这个数值小于当前字符串的长度,则返回当前字符串本身。

padString(可选参数):填充字符串。
如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的默认值为 " "
*/


//月日时分秒双位数补全
(new Date().getMonth()+1).toString().padStart(2,'0')
new Date().getDate().toString().padStart(2,'0')
new Date().getHours().toString().padStart(2,'0')
new Date().getMinutes().toString().padStart(2,'0')
new Date().getSeconds().toString().padStart(2,'0')


//时间格式化输出
formattedDate(time){
  let date = new Date(time);
  let year = date.getFullYear();  
  let month = (date.getMonth() + 1).toString().padStart(2,'0')  
  let day = date.getDate().toString().padStart(2,'0')
  let hour = date.getHours().toString().padStart(2,'0')
  let minute = date.getMinutes().toString().padStart(2,'0')
  let second = date.getSeconds().toString().padStart(2,'0')
  let weekDay = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
  let week = date.getDay(); 
  let formattedDate = `${year}-${month}-${day} ${hour}:${minute}:${second} ${weekDay[week]}`;  
  return formattedDate
},


时分秒与时间戳相互转换

javascript">
//时间转时间戳
let nowStamp = new Date().getHours()*3600 + new Date().getMinutes()*60 + new Date().getSeconds()

console.log(nowStamp)  //61579




//时间戳转时间
let nowTime = Number(61579);
let hour = Math.floor(nowTime /3600).toString().padStart(2,'0')
let minute = Math.floor((nowTime %3600)/60).toString().padStart(2,'0')
let second = (parseInt(nowTime %3600)%60).toString().padStart(2,'0')

console.log(`${hour}:${minute}:${second}`)   //17:06:19


http://www.niftyadmin.cn/n/5283323.html

相关文章

springboot(ssm在线互动学习网站 在线课程管理系统 Java系统

springboot(ssm在线互动学习网站 在线课程管理系统 Java系统 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0&#xff09…

62权限提升-烂土豆dll劫持引号路径服务权限

必备知识点:令牌窃取配合烂土豆提权, 单纯令牌窃取:web提权或者本地提权 如果配合烂土豆提权,就需要web权限和数据库权限。配合烂土豆的就用不了本地提权了, 烂土豆的原理, 他进行提权的时候用到的是关…

十八、本地配置Hive

1、配置MYSQL mysql> alter user rootlocalhost identified by Yang3135989009; Query OK, 0 rows affected (0.00 sec)mysql> grant all on *.* to root%; Query OK, 0 rows affected (0.00 sec)mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)2、…

OpenCV学习笔记 - 使用 OpenCV 检测运动的最简单方法

一、运动检测 运动检测是检测视频序列中移动对象的过程。在计算机视觉中,它是检测视频帧中像素级变化的过程。我们可以用它来发现现实世界中的新对象,甚至执行与类无关的对象检测,这在地理空间分析、客户分析、监视、自治和其他相关领域非常有用。 如何检测视频中的运动?这…

华为云Windows Server服务器下,Node使用pm2-logrotate分割pm2日志,解决pm2日志内存占用过高的问题。

一、简介 PM2 是一个守护进程管理器,它将帮助您管理和保持您的应用程序在线。PM2 入门很简单,它以简单直观的 CLI 形式提供,可通过 NPM 安装。官网地址:https://pm2.keymetrics.io/ 二、问题:pm2日志内存占用过高&am…

51单片机模数转换ADC原理与代码一

51单片机模数转换ADC原理与代码一 1.概述 这篇文章是模数转换的入门文章,这篇文章主要介绍模数的概念、原理、核心指标、专业术语,以及一个模数转换的实例代码实现检测电位器的数值变化。 2.ADC介绍 2.1.ADC概念 ADC(Analog-to-Digital Converter)是…

Pytorch学习笔记 | GAN生成对抗网络 | 代码 | 生成mnist手写数字图片

文章目录 GAN网络简介测试判别器和测试生成器测试判别器测试生成器首次生成图片(效果欠佳)生成图片(比较清晰,但还有差距)生成图片(继续优化,输入扩维)生成图片(继续优化,)GAN网络简介 生成对抗网络(GAN,Generative Adversarial Networks)是一种深度学习模型,由…

2024年3月电子学会青少年编程等级考试时间安排

1考试方式 1. 在线居家考试(全国); 2. 对于符合线下考试要求的考试服务网点,经地方实地调研报学会总部批准后,可组织线下考试。 2报名时间 报名时间:2023年12月21日-2024年3月12日16:00; 考…