JavaScript日期时间与时间戳的转换函数分享
关于JavaScript日期时间与时间戳转换的
在前端开发中,我们经常需要将日期和时间转换为时间戳,或将时间戳转换为特定的日期格式。本文将分享两个实用的JavaScript函数,帮助开发者轻松实现这两种转换。
一、时间转时间戳
在JavaScript中,将当前时间转换为时间戳相对简单,可以直接使用`new Date().getTime()/1000`。如果你需要将特定的日期和时间转换为Unix时间戳,直接使用带参数的`new Date()`方法在某些浏览器(如IE)中可能会返回NaN。
二、日期和时间戳的相互转换
针对这个问题,我提供了一个解决方案,即一个名为`getTime`的函数。这个函数可以支持IE6+,谷歌,火狐等浏览器,并允许你输入特定的日期和时间格式。函数会尝试输入的日期字符串,并返回对应的时间戳。
代码如下:
```javascript
function getTime(day){
re = /(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?(?:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))?/.exec(day);
return new Date(re[1],(re[2]-1||1),re[3]-1||1,re[4]||0,re[5]||0,re[6]||0).getTime()/1000;
}
```
你可以通过调用这个函数并传入特定的日期和时间格式来测试它,例如:
```javascript
alert(getTime("2013-02-03 10:10:10")); // 格式化日期时间转时间戳
alert(getTime("2013-02-03")); // 只提供年月日转时间戳
alert(getTime("2013-02")); // 只提供年月转时间戳
alert(getTime("2013")); // 仅年份转时间戳(注意结果可能不准确)
```
我还提供了一个类似PHP的`date`函数的JavaScript函数,用于将时间戳转换为自定义的日期格式。由于篇幅原因,这里不再赘述。你可以查阅相关文档或源码以获取更多信息。
函数概述
这个函数允许用户通过传入一个格式字符串和(可选的)时间戳,来定制日期和时间的输出格式。格式字符串包含特定的占位符,如`Y`(年份)、`m`(月份)、`d`(日期)等,这些占位符会被相应的日期和时间值替换。
我将对代码进行简化和注释,以提高可读性。
```javascript
// 定义一个函数,用于格式化日期和时间
function date(format, timestamp = null) {
// 初始化日期对象和时间戳变量
var jsdate = new Date((timestamp !== null) ? timestamp 1000 : Date.now());
// 定义一些辅助函数和变量用于日期格式化
var pad = function(n, c) { / ...省略原代码... / }; // 用于填充数字到指定长度
var txt_weekdays = ["Sunday", "Monday", / ...省略其他星期名称... /]; // 星期名称数组
var txt_ordin = { / ...省略序数映射... / }; // 日期的序数映射(如1st, 2nd等)
var txt_months = ["", "January", / ...省略其他月份名称... /]; // 月份名称数组
var f = { / ...省略所有格式化函数... / }; // 包含各种日期和时间格式化函数的对象
// 使用正则表达式替换格式字符串中的占位符为相应的日期和时间值
return format.replace(/[\\]?([a-zA-Z])/g, function(match, key) {
// 检查是否需要特殊处理占位符或者调用相应的日期函数进行替换
return key ? (f[key] ? f[key]() : key) : match; // 如果存在对应的日期函数则调用,否则直接返回原字符
});
}
```
测试代码解释:
这些测试代码调用`date`函数并显示结果。它们验证了函数的基本功能,包括使用当前时间戳和自定义时间戳。如果一切正常,将显示格式化的日期和时间字符串。例如:`alert(date('Y-m-d H:i:s',(new Date).getTime()/1000));` 这行代码将显示当前日期和时间的格式化字符串。其他测试代码类似。`cambrian.render('body')`可能是调用某个库或框架的函数,用于渲染或更新页面上的内容,但由于没有上下文信息,无法确定其具体功能。这个函数非常实用,能够帮助开发者轻松地格式化JavaScript中的日期和时间。
编程语言
- JavaScript日期时间与时间戳的转换函数分享
- 微信分享调用jssdk实例
- InnoDB实现序列化隔离级别的方法
- 微信支付--签名错误问题的解决方法
- Bootstrap modal只加载一次数据的解决办法(推荐)
- PHPCMS V9 添加二级导航的思路详解
- 使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
- PHP内置加密函数详解
- PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQu
- 详解Vue.js中引入图片路径的几种方式
- asp.net5中的用户认证与授权(1)
- Windows下使用Nodejs运行js的方法
- asp.net Core3.0区域与路由配置的方法
- JavaScript使用DeviceOne开发实战(一) 配置和起步
- setTimeout学习小结
- JavaScript 闭包详细介绍