• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

javascript – JS中有类似PHP date()方法吗?

php 搞代码 4年前 (2022-01-25) 16次浏览 已收录 0个评论
文章目录[隐藏]

如题,想实现功能。
传入时间戳“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;        }   <b>%本文@来源gao@!dai!ma.com搞$$代^@码!网</b><strong>搞代gaodaima码</strong>     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    timeJavaScript    Math.round(new Date().getTime()/1000)getTime()返回数值的单位是毫秒Microsoft .NET / C#    epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000MySQL    SELECT unix_timestamp(now())Perl    timePHP    time()PostgreSQL    SELECT extract(epoch FROM now())Python    先 import time 然后 time.time()Ruby    获取Unix时间戳:Time.now 或 Time.new显示Unix时间戳:Time.now.to_iSQL Server    SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())Unix / Linux    date +%sVBScript / 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>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:javascript – JS中有类似PHP date()方法吗?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址