时间戳的转换

自定义指令案例:时间戳的转换

安装dayjs库,方便对时间戳做转换:

npm install dayjs

App.vue:

<template>
  <div>
    <h2 v-format-time>{{ timeStamp }}</h2>
  </div>
</template>

<script>
export default {
  setup() {
    const timeStamp = 1659935604;
    return {
      timeStamp,
    };
  },
};
</script>

format-time.js:

import dayjs from 'dayjs'

export default function formatTime(app) {
  app.directive('format-time',{
    mounted(el,bindings) {
      //拿到标签里的内容
      let textContent = el.textContent
      //将字符串转换成整数
      let timestamp = parseInt(textContent)
      // 传入的需要转换的形式,如果没有传入则使用默认形式
      let formatString = bindings.value
      if(!formatString) {
        formatString = 'YYYY-MM-DD HH:mm:ss'
      }
      //将秒转成毫秒
      if(textContent.length === 10) {
        timestamp = timestamp * 1000
      }
      //传入dayjs函数的时间戳需要是毫秒单位
      el.textContent = dayjs(timestamp).format(formatString)
    },
  })
}
### 时间戳转换概述 时间戳表示自1970年1月1日(UTC/GMT的午夜)以来经过的秒数或毫秒数。在不同的编程环境中,可以利用内置函数或者库来实现时间戳与其他日期格式间的互相转换。 #### Excel中的时间戳转换 对于Excel而言,在将秒级时间戳转换为`yyyy-mm-dd hh:mm:ss`格式的过程中,主要依赖于特定公式完成此过程[^1]: ```excel =TEXT((A1/86400)+DATE(1970,1,1),"yyyy-mm-dd hh:mm:ss") ``` 这里假设时间戳位于单元格A1中;该表达式的含义在于先将以秒计的时间差除以一天内的总秒数得到天数增量,再加上起始日期即Unix纪元起点,最后应用指定模式显示结果。 #### C++环境下的时间戳转换 而在C++里,则借助标准库组件来进行相应变换工作[^2]: ```cpp #include <iostream> #include <ctime> int main(){ std::time_t rawtime; struct tm * timeinfo; // 获取当前时间作为示例 time(&rawtime); // 将时间戳转化为本地时间结构体tm* timeinfo = localtime(&rawtime); char buffer[80]; strftime(buffer,sizeof(buffer),"%Y-%m-%d %H:%M:%S",timeinfo); std::cout << "Current local date and time: " << buffer << '\n'; return 0; } ``` 这段代码展示了怎样把一个给定的时间戳解析成易于理解的形式并打印出来。 #### PHP语言里的操作方式 至于PHP方面,其提供了非常简洁的方法用于执行相同任务——仅需调用一次内置函数即可达成目标[^3]: ```php <?php echo date("Y-m-d H:i:s", strtotime('now')); ?> ``` 以上命令会输出服务器所在时区下此刻对应的完整日期字符串形式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值