目次
回复内容:
ホームページ バックエンド開発 PHPチュートリアル javascript - JS中有类似PHP date()方法吗?

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

Jun 06, 2016 pm 08:25 PM
javascript php

如题,想实现功能。
传入时间戳“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实现呢??

随便实现了一下,写的比较糙,但是可以实现

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
ログイン後にコピー

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>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles