在jQuery中转换UNIX时间戳

时间:2013-02-09 09:35:13

标签: jquery getjson

好吧,我使用带有getJSON的php页面从我的表中获取时间戳。这是结构。

main.php - >使用getJSON(abc.php) - >我表中的价值

有没有办法将此UNIX时间戳转换为以下格式:

  

dd-mm-yyyy at hh:mm am

3 个答案:

答案 0 :(得分:8)

Unix时间戳是自1970年(纪元)以来经过的秒数。您需要将其转换为JS中的日期对象:

var date = new Date(unixTimestamp*1000); // *1000 because of date takes milliseconds

获得日期对象后,您可以使用以下帖子中提到的任何技术: How to format a JavaScript date

答案 1 :(得分:4)

var dt=eval(unixtimestamp*1000);
var myDate = new Date(dt);
return(myDate.toLocaleString());

这会产生如下输出:10/27/2014, 12:58:45 PM

答案 2 :(得分:3)

将UNIX时间戳转换为给定格式dd-mm-yyyy at hh:mm am;您必须首先构造一个JavaScript Date对象,然后使用本机JavaScript Date方法或date.format jQuery Library。

第1步:构建日期对象

var timestampInMilliSeconds = unixTimeStamp*1000; //as JavaScript uses milliseconds; convert the UNIX timestamp(which is in seconds) to milliseconds.
var date = new Date(timestampInMilliSeconds); //create the date object

第2步:转换为给定格式

选项#1 - 使用原生JavaScript日期方法

var day = (date.getDate() < 10 ? '0' : '') + date.getDate(); //adding leading 0 if date less than 10 for the required dd format
var month = (date.getMonth() < 9 ? '0' : '') + (date.getMonth() + 1); //adding leading 0 if month less than 10 for mm format. Used less than 9 because javascriptmonths are 0 based.
var year = date.getFullYear(); //full year in yyyy format

var hours = ((date.getHours() % 12 || 12) < 10 ? '0' : '') + (date.getHours() % 12 || 12); //converting 24h to 12h and using 12 instead of 0. also appending 0 if hour less than 10 for the required hh format
var minutes = (date.getMinutes() < 10 ? '0' : '') + date.getMinutes(); //adding 0 if minute less than 10 for the required mm format
var meridiem = (date.getHours() >= 12) ? 'pm' : 'am'; //setting meridiem if hours24 greater than 12

var formattedDate = day + '-' + month + '-' + year + ' at ' + hours + ':' + minutes + ' ' + meridiem;

注意:显示的日期将基于客户端时区。如果您需要基于UTC的时间;使用 getUTCDate() getUTCMonth() getUTCFullYear() getUTCHours() getUTCMinutes( ) getUTCHours() JavaScript日期对象的方法,而不是提供的方法。

选项#2 - 使用date.format jQuery Library

  • 下载date.format.js

    https://raw.githubusercontent.com/jacwright/date.format/master/date.format.js

  • 在HTML文件中包含date.format.js

    <script src="/script dir/date.format.js"></script> //substitute "script dir" with the directory where date.format.js reside

  • 格式化日期对象

    您可以使用与PHP

    类似的方式使用格式字符串

    var formattedDate = date.format('d-m-Y \\a\\t h:i a');

实施例

选项#1

var unixTimeStamp = 983112343;
var timestampInMilliSeconds = unixTimeStamp*1000;
var date = new Date(timestampInMilliSeconds);

var day = (date.getDate() < 10 ? '0' : '') + date.getDate();
var month = (date.getMonth() < 9 ? '0' : '') + (date.getMonth() + 1);
var year = date.getFullYear();

var hours = ((date.getHours() % 12 || 12) < 10 ? '0' : '') + (date.getHours() % 12 || 12);
var minutes = (date.getMinutes() < 10 ? '0' : '') + date.getMinutes();
var meridiem = (date.getHours() >= 12) ? 'pm' : 'am';

var formattedDate = day + '-' + month + '-' + year + ' at ' + hours + ':' + minutes + ' ' + meridiem;

alert(formattedDate);

选项#2

var unixTimeStamp = 983112343;
var timestampInMilliSeconds = unixTimeStamp*1000;
var date = new Date(timestampInMilliSeconds);

var formattedDate = date.format('d-m-Y \\a\\t h:i a');
alert(formattedDate);
<script src="https://raw.githubusercontent.com/jacwright/date.format/master/date.format.js"></script>

注意:还有像moment.js这样的其他类似的东西。