JS 时间常见单位之间的转换(Date/Moment/格式化/时间戳)

没啥技术含量,mark一下,方便查找~

单位之间的常见转换

1. Moment转string 
引用:
import moment,{Moment} from 'moment/moment';
moment.locale('zh-cn');
 
moment().format('YYYY-MM-DD HH:mm:ss');
moment(1594967587594).format('YYYY-MM-DD');
 
2. Date转string
new Date().toLocaleDateString()
moment(new Date().getTime()).format('YYYY-MM-DD');
 
3. string/int转Date
new Date('2020-7-13')
new Date(1594967587594)

获取时间戳

1. moment转时间戳

与当前相隔的时间戳:

moment("20151010", "YYYYMMDD").fromNow().valueOf() 

明天此时的时间戳:

moment().add('days',1).valueOf() 

获取明日开始的时间戳:

  const opDate = moment();
  const curDay = today.get('date');
  opDate.set('date', curDay + 1);
  opDate.set('hour', 0);
  opDate.set('minute', 0);
  opDate.set('second', 0);
  opDate.valueOf();

2. Date转时间戳

//今天
new Date().toLocaleDateString()
"2020/7/17"
new Date().getTime()
1594967587594
new Date(new Date().toLocaleDateString()).getTime()
1594915200000
 
//本周
new Date().getDay()
5
new Date('2020-7-13').getTime()
1594569600000
new Date(new Date().toLocaleDateString()).getTime()- 1000 * 60 * 60 * 24* (new Date().getDay()-1)
1594569600000
//本月
new Date('2020-7').getTime()
1593532800000
new Date('2020-7-1').getTime()
1593532800000
new Date().getDate()
17
new Date(new Date().toLocaleDateString()).getTime()- 1000 * 60 * 60 * 24* (new Date().getDate()-1)
1593532800000
 
//分步
var today = new Date();
var oneday = 1000 * 60 * 60 * 24;
var todayStamp=new Date(today.toLocaleDateString()).getTime();
var yesterdayStamp = todayStamp - oneday * 1;
var currentWeekStamp= todayStamp - oneday * (today.getDay()-1);
var currentMonthStamp=todayStamp - oneday * (today.getDate()-1);
 
日历-某个月的时间戳范围
复制代码
1         //一个完整日历时间戳
2         var oneday = 1000 * 60 * 60 * 24;
3         var todayStamp = new Date(day.toLocaleDateString()).getTime();
4         var monthFirstDay = todayStamp - oneday * (day.getDate() - 1);
5         var monthFirstDayWeekIndex = new Date(monthFirstDay).getDay();
6         var calendarFirstDay = monthFirstDay - oneday * (monthFirstDayWeekIndex - 1);
7         var monthLastDay = new Date(day.getFullYear(), day.getMonth() + 1, 0);
8         var monthLastDayWeekIndex = monthLastDay.getDay();
9         var calendarLastDay = monthLastDay.getTime() + (7 - monthLastDayWeekIndex + 1 + (monthFirstDayWeekIndex >= 6 ? 0 : 7)) * oneday;
复制代码

 

posted @   唐宋元明清2188  阅读(4581)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示
哥伦布
10:09发布
哥伦布
10:09发布
1°
西北风
4级
空气质量
相对湿度
68%
今天
0°/10°
周二
4°/19°
周三
11°/20°