如题,想实现功能。
传入时间戳“1400000000”,返回格式:2015-01-01
PHP实现:date("Y-m-d H:i:s","1400000000");
javascript实现呢??
伊谢尔伦2017-04-10 16:07:28
随便实现了一下,写的比较糙,但是可以实现
function getFormatDate(split,timeInMs){
var curr=new Date();
curr.setTime(timeInMs);
var year=curr.getFullYear();
var month=curr.getMonth()+1;
var date=curr.getDate();
var hours=curr.getHours();
var minutes=curr.getMinutes();
var seconds=curr.getSeconds();
var formatDateStr=year+split[0]+month+split[0]+date+" "+hours+split[1]+minutes+split[1]+seconds;
return formatDateStr;
}
var res=getFormatDate(["-",":"],1433456000345); //这里要输入13位数
console.log(res); // 2015-6-5 6:13:20
巴扎黑2017-04-10 16:07:28
兼容大部分PHP里面date函数的实现:
function date () {
if (arguments.length == 0) {
throw "date() expects at least 1 parameter, 0 given";
}
var format = arguments[0];
var time = arguments.length > 1 ? new Date(arguments[1] * 1000) : new Date();
var padding = function (str, length) {
return "0000".substr(0, length - str.toString().length) + str;
}
return format.replace(/[a-z]/ig, function (c){
var dayOfYear = function (time) {
return (time.getTime() - (new Date(time.getFullYear(), 0, 1)).getTime()) / 86400000 >> 0;
}
var daysOfMonth = function (time) {
var year = time.getFullYear();
var month = time.getMonth();
return ((new Date(year, month + 1, 1)).getTime() - (new Date(year, month, 1)).getTime()) / 86400000 >> 0;
}
var sign = function (num) {
return num >= 0 ? "+" : "-";
}
switch (c) {
case "d":
return padding(time.getDate());
case "D":
return ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][time.getDay()];
case "j":
return time.getDate();
case "l":
return ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][time.getDay()];
case "N":
return [7, 1, 2, 3, 4, 5, 6][time.getDay()];
case "S":
switch(time.getDate()) {
case 1:
return "st";
case 2:
case 22:
return "nd";
case 3:
case 23:
return "rd";
}
return "th";
case "w":
return time.getDay();
case "z":
return dayOfYear(time);
case "W":
return dayOfYear(time) / 7 >> 0;
case "F":
return ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][time.getMonth()];
case "m":
return padding(time.getMonth() + 1, 2);
case "M":
return ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"][time.getMonth()];
case "n":
return time.getMonth() + 1;
case "t":
return daysOfMonth(time);
case "L":
return dayOfyear(new Date(time.getFullYear() + 1, 0, 1)) == 365;
case "Y":
return time.getFullYear();
case "y":
return padding(time.getFullYear() % 100, 2);
case "a":
return time.getHours() >= 12 ? "am" : "pm";
case "A":
return time.getHours() >= 12 ? "AM" : "PM";
case "g":
return time.getHours() % 12;
case "G":
return time.getHours();
case "h":
return padding(time.getHours() % 12, 2);
case "H":
return padding(time.getHours(), 2);
case "i":
return padding(time.getMinutes(), 2);
case "s":
return padding(time.getSeconds(), 2);
case "u":
return time.getTime() % 1000 + "000";
case "O":
return sign(-time.getTimezoneOffset()) + padding(Math.abs(time.getTimezoneOffset()) / 60, 2) + "00";
case "P":
return sign(-time.getTimezoneOffset()) + padding(Math.abs(time.getTimezoneOffset()) / 60 >> 0, 2) + ":" + Math.abs(time.getTimezoneOffset()) % 60;
case "Z":
return -time.getTimezoneOffset();
case "U":
return time.getTime() / 1000 >> 0;
case "o":
case "B":
case "e":
case "I":
case "T":
case "c":
case "r":
throw c + " is not yet implemented.";
default:
return c;
}
})
}
ringa_lee2017-04-10 16:07:28
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
function formatDate(date, fmt){ //author: meizz
fmt = fmt || 'yyyy-MM-dd hh:mm:ss';
var o = {
"M+" : date.getMonth()+1, //月份
"d+" : date.getDate(), //日
"h+" : date.getHours(), //小时
"m+" : date.getMinutes(), //分
"s+" : date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度
"S" : date.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
return fmt;
}
不用谢我,我也是从其他地方抄的
高洛峰2017-04-10 16:07:28
var unixTimestamp = new Date(1446027232 * 1000);
commonTime = unixTimestamp.toLocaleString();
希望这个也能帮到你一点。
PHP中文网2017-04-10 16:07:28
有,不过不太好用。
另附其他语言版本
Java time
JavaScript Math.round(new Date().getTime()/1000)
getTime()返回数值的单位是毫秒
Microsoft .NET / C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000
MySQL SELECT unix_timestamp(now())
Perl time
PHP time()
PostgreSQL SELECT extract(epoch FROM now())
Python 先 import time 然后 time.time()
Ruby 获取Unix时间戳:Time.now 或 Time.new
显示Unix时间戳:Time.now.to_i
SQL Server SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())
Unix / Linux date +%s
VBScript / ASP DateDiff("s", "01/01/1970 00:00:00", Now())
其他操作系统
(如果Perl被安装在系统中) 命令行状态:perl -e "print time"
天蓬老师2017-04-10 16:07:28
https://segmentfault.com/q/1010000000701472/a-1020000005044252?utm_source=Weibo
楼上代码都不错,这里也有一个,大同小异.
伊谢尔伦2017-04-10 16:07:28
function formatDate(now) {
var year=now.getYear();
var month=now.getMonth()+1;
var date=now.getDate();
var hour=now.getHours();
var minute=now.getMinutes();
var second=now.getSeconds();
return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;
}
可以试试这个函数。
改下这个就行。 return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;