JavaScript日期时间与时间戳的转换函数分享

网络编程 2025-03-30 02:09www.168986.cn编程入门

关于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中的日期和时间。

上一篇:微信分享调用jssdk实例 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by