在javascript中将时间戳转换为人类日期的函数



如何使用javascript中的函数将此时间戳1382086394000转换为2013-10-18 08:53:14?目前我有这个功能:

function cleanDate(d) {return new Date(+d.replace(//Date((d+))//, '$1'));}

1382086394000的值可能是一个时间值,它是自 1970-01-01T00:00:00Z 以来的毫秒数。您可以使用它使用 Date 构造函数创建一个 ECMAScript Date 对象:

var d = new Date(1382086394000);

如何将其转换为可读的内容取决于您。简单地将其发送到输出应该调用内部(完全依赖于实现)toString 方法*,该方法通常以人类可读的形式打印等效的系统时间,例如

Fri Oct 18 2013 18:53:14 GMT+1000 (EST) 

在 ES5 中,还有其他一些内置的格式化选项:

  • toDateString
  • 到时间字符串
  • toLocaleString

等等。请注意,大多数都依赖于实现,并且在不同的浏览器中会有所不同。如果您希望在所有浏览器中使用相同的格式,则需要自己设置日期格式,例如:

alert(d.getDate() + '/' + (d.getMonth()+1) + '/' + d.getFullYear());

* Date.prototype.toString 的格式已在 ECMAScript 2018 中标准化。它可能还需要一段时间才能在所有实现中无处不在,但至少更常见的浏览器现在支持它。

这工作正常。在浏览器中chrome已签入:

var theDate = new Date(timeStamp_value * 1000);
dateString = theDate.toGMTString();
alert(dateString );

为什么不简单地

new Date (timestamp);
日期

就是日期,它的格式是另一回事。

Moment.js可以将Unix时间戳转换为任何自定义格式

在这种情况下:var time = moment(1382086394000).format("DD-MM-YYYY h:mm:ss");

将打印18-10-2013 11:53:14;

这里有一个 plunker 来证明这一点。

以下是混淆每个日期格式的简单方法:

对于当前日期:

var current_date=new Date();

获取当前日期的时间戳:

var timestamp=new Date().getTime();

将特定日期转换为时间戳:

var timestamp_formation=new Date('mm/dd/yyyy').getTime();

将时间戳转换为日期:

    var timestamp=new Date('02/10/2016').getTime();
    var todate=new Date(timestamp).getDate();
    var tomonth=new Date(timestamp).getMonth()+1;
    var toyear=new Date(timestamp).getFullYear();
    var original_date=tomonth+'/'+todate+'/'+toyear;
  OUTPUT:
 02/10/2016

我们需要使用 JavaScript 创建新函数。

function unixTime(unixtime) {
    var u = new Date(unixtime*1000);
      return u.getUTCFullYear() +
        '-' + ('0' + u.getUTCMonth()).slice(-2) +
        '-' + ('0' + u.getUTCDate()).slice(-2) + 
        ' ' + ('0' + u.getUTCHours()).slice(-2) +
        ':' + ('0' + u.getUTCMinutes()).slice(-2) +
        ':' + ('0' + u.getUTCSeconds()).slice(-2) +
        '.' + (u.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) 
    };
console.log(unixTime(1370001284))
2016-04-30 08:36:26.000

这就是我为Instagram API所做的。 使用日期方法通过乘以 1000 转换时间戳。然后单独添加所有实体,例如(年,月等)

创建自定义月份列表名称,并使用返回月份索引的方法getMonth()映射它。

convertStampDate(unixtimestamp){

// Months array
var months_arr = ['January','February','March','April','May','June','July','August','September','October','November','December'];
// Convert timestamp to milliseconds
var date = new Date(unixtimestamp*1000);
// Year
var year = date.getFullYear();
// Month
var month = months_arr[date.getMonth()];
// Day
var day = date.getDate();
// Hours
var hours = date.getHours();
// Minutes
var minutes = "0" + date.getMinutes();
// Seconds
var seconds = "0" + date.getSeconds();
// Display date time in MM-dd-yyyy h:m:s format
var fulldate = month+' '+day+'-'+year+' '+hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
// final date
var convdataTime = month+' '+day;
return convdataTime;
}

使用戳票参数调用 convertStampDate('1382086394000')

仅此而已。

使用 .toLocaleString

// undefined uses default locale
console.log(new Date().toLocaleString(undefined, {dateStyle: 'short'}));

或者自定义方法,以防您出于某种原因不想使用 toLocaleString:

formatDate函数是您可以调用它并将要格式化的日期传递给dd/mm/yyyy

var unformatedDate = new Date("2017-08-10 18:30:00");
 
$("#hello").append(formatDate(unformatedDate));
function formatDate(nowDate) {
    return nowDate.getDate() +"/"+ (nowDate.getMonth() + 1) + '/'+ nowDate.getFullYear();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="hello">

</div>

有一种简单的方法可以转换为更具可读性的形式

new Date().toLocaleString();
new Date(1630734254000).toLocaleString();

此格式的输出 => 2021/9/4 上午 11:14:14

我的 ES6 变体生成这样的字符串2020-04-05_16:39:45.85725。随意修改 return 语句以获取所需的格式:

const getDateStringServ = timestamp => {
  const plus0 = num => `0${num.toString()}`.slice(-2)
  const d = new Date(timestamp)
  const year = d.getFullYear()
  const monthTmp = d.getMonth() + 1
  const month = plus0(monthTmp)
  const date = plus0(d.getDate())
  const hour = plus0(d.getHours())
  const minute = plus0(d.getMinutes())
  const second = plus0(d.getSeconds())
  const rest = timestamp.toString().slice(-5)
  return `${year}-${month}-${date}_${hour}:${minute}:${second}.${rest}`
}
new Date(timestamp).toString().substring(4, 15)

1631685556789 ==> Sep 15 2021

从给定日期开始计算时间戳中的日期

要从正常日期获取时间戳日期:格式 - 1560105000000

输入日期的格式可以是:"2019-06-09T18:30:00.000Z"

this.calculateDateInTimestamp = function (inputDate) {
    var date = new Date(inputDate);
    return date.getTime();
}

输出 : 1560018600000

最新更新