Heim >Backend-Entwicklung >PHP-Tutorial >javascript - JS中有类似PHP date()方法吗?
如题,想实现功能。
传入时间戳“1400000000”,返回格式:2015-01-01
PHP实现:date("Y-m-d H:i:s","1400000000");
javascript实现呢??
如题,想实现功能。
传入时间戳“1400000000”,返回格式:2015-01-01
PHP实现:date("Y-m-d H:i:s","1400000000");
javascript实现呢??
随便实现了一下,写的比较糙,但是可以实现
<code class="Javascript">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</code>
https://github.com/jacwright/date.format
自己实现的话可以看以上几位的,俺贴个插件。
http://momentjs.cn/
兼容大部分PHP里面date函数的实现:
<code>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; } }) }</code>
<code>// 对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; }</code>
不用谢我,我也是从其他地方抄的
<code>var unixTimestamp = new Date(1446027232 * 1000); commonTime = unixTimestamp.toLocaleString(); </code>
希望这个也能帮到你一点。
有,不过不太好用。
另附其他语言版本
<code>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"</code>
建议使用momentjs,出bug的机会小;不过有时间可以研究楼上自己写的扩展。
https://segmentfault.com/q/1010000000701472/a-1020000005044252?utm_source=Weibo
楼上代码都不错,这里也有一个,大同小异.
<code>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; } </code>
可以试试这个函数。
改下这个就行。 return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;
sdfsdfsd
<code>sdfsadfsd</code>