很多人的网站上都有小字计时说明:本网站已经运行了多长时间。这是一个很精致的功能,非常的有仪式感。
其实在 Typecho 中,实现这样的功能,只需要通过插件,甚至修改下代码就能实现这一功能。

如果在其他网站想实现这样效果,可以看一下我更新的另外一篇文章: Hexo 博客显示网站运行时间代码

代码及安装

说明

代码分两个部分,分别需要放在模板文件functions.phpfooter.php

functions.php部分的代码安装

// 设置时区
date_default_timezone_set('Asia/Shanghai');
/**
 * 秒转时间,格式 年 月 日 时 分 秒
 *今天给大家简单介绍下微软账户的情况,微软账户主要由两大类:*个人账户*和*组织账户*。


<!--more-->


### 个人账户

个人在微软注册的账户,账户格式为邮箱,微软提供的后缀是outlook.com或者hotmail.com,这样的账户会带有微软的Outlook邮箱;而有些小伙伴注册用的是自己的其他邮箱,常见的如qq邮箱、foxmail、网易邮箱等等,这样的账户是不带微软Outlook邮箱功能。其他方面都是一致的。

#### 特点

个人账户使用的服务器为微软官方的服务器,全球的服务依赖cdn加速,内容存储在美国。各地的用户使用微软服务会根据使用者位置,就近原则匹配网络节点,所以服务大部分时候都是比较快的。

新注册的个人账户对应的OneDrive存储空间默认为5GB,如果是通过被邀请的链接注册,则默认是5.5GB的空间。微软给出的免费扩容政策是通过自己账户的邀请链接邀请其他人注册,通过指定的邀请链接,每增加一个账户容量提升0.5GB,上限为15GB。**这是目前个人账户永久容量的上限。**

**Tips:**目前微软大部分官方的域名都可以访问,但是live点com因为一些众所周知的原因被屏蔽了,导致个人账户的OneDrive网页版不能直接访问,功能因此缩水了非常多。

当然15GB的容量对有些人来说是远远不够的,这时候微软推出了额外两种收费的扩容方案:高级账户和额外付费容量。

##### [高级账户](https://products.office.com/zh-cn/compare-all-microsoft-office-products?=&activetab=tab:primaryr1)

上面是高级账户的官方购买地址,目前高级版主要是家庭版和个人版,个人版只能自己一个人使用,官方价格是398元/年,家庭版可以六个人共享,官方价格是498元/年。对比下来,套餐的权限是差不多的,但是家庭版可以六个人使用,且每个人都享受个人版的完整套餐福利,分摊下来,家庭版没人只需要80元多一点,实惠了很多。所以网上有很多的共享家庭版的行为,确实非常的划算。

高级账户的OneDrive容量会额外增加1024GB,比如基础是5GB容量,升级之后就是1029GB的总容量。高级账户还有最新桌面版的Office(Word、Excel、PPT)正版使用权,同时五台设备一起使用,且不分Mac/Win等跨平台的限制,这么一看就更划算了。

##### 额外容量

当1TB的容量还是不够用的时候,微软还有额外的付费使用容量,价格如图,这些容量还是比较贵的。

### 组织账户

微软的组织账户一般分为商业组织账户和教育版组织账户。除了商业和教育两大类组织类型不同,商业版本和教育版本还有很多不同类型的账户。不同版本的账户在功能上或多或少有一些差别,比如开发者类型的账户,教育账户的不同版本等等。

组织类账户最大的优势就是有更多的优惠,资源更丰富,对比个人账户而言,差别非常的大。

商业账户价格比较实惠,但还是有点高,而教育类账户就有非常多的福利。国外比较大的互联网企业都给教育提供了专属的资源,微软也不例外,其中大量的5TB账户就是教育类型账户。

组织类型账户都是管理员统一付费使用,子账户不需要任何的付费,只要管理员给了订阅,就可以享受权限。

**Tips:**组织账户的OneDrive网页版并不依赖live点com这个域名,所以可以正常访问和使用网页版。

> 微软目前的功能整合的程度还是不错的,同级别的账户体系是Google,我们一般称之为微软全家桶和谷歌全家桶(这个全家桶和国内的某0全家桶、某度全家桶可以理解为反义词),两家提供了非常强大的生产力工具集合。不过谷歌全家桶因为众所周知的原因国内不能正常访问账户体系,使用体验也大大打折。
 */
function getBuildTime() {
    // 在下面按格式输入本站创建的时间
    $site_create_time = strtotime('2019-12-20 20:00:00');
    $time = time() - $site_create_time;
    if (is_numeric($time)) {
        $value = array(
            "years" => 0, "days" => 0, "hours" => 0,
            "minutes" => 0, "seconds" => 0,
        );
        if ($time >= 31556926) {
            $value["years"] = floor($time / 31556926);
            $time = ($time % 31556926);
        }
        if ($time >= 86400) {
            $value["days"] = floor($time / 86400);
            $time = ($time % 86400);
        }
        if ($time >= 3600) {
            $value["hours"] = floor($time / 3600);
            $time = ($time % 3600);
        }
        if ($time >= 60) {
            $value["minutes"] = floor($time / 60);
            $time = ($time % 60);
        }
        $value["seconds"] = floor($time);

        echo '<span class="btime">'.$value['years'].
        '年'.$value['days'].
        '天'.$value['hours'].
        '小时'.$value['minutes'].
        '分</span>';
    } else {
        echo '';
    }
}

这一部分的代码放在functions.php文件的最下面,保存即可,其中strtotime('2011-01-01 00:00:00');部分的时间按原格式修改为自己的网站建立时间。

footer.php部分的代码安装

<?php getBuildTime(); ?>

如果需要修改显示的颜色,可以在这段代码前面加上下面的代码:

<font color="#fff">

其中"#fff"修改为任意自己想要的颜色就可以了。

这一部分是引用代码,想把计时显示在网站哪个位置,就放在哪个位置就行。本站的代码是放在网站最下面,所以选择的是footer.php文件。

因为代码只显示时间,所以可以考虑用一些文字增加代码的趣味性,另外可以修改代码精确到秒,不过我不知道怎么让他自动刷新。

效果展示

missu.png

插件

插件介绍

  • 名称:SiteRunningTime
  • 功能:显示网站运行时间
  • 效果:通过 Typecho 网站的建立的初始时间,计算并显示网站运行的时长,可以动态显示到秒。
  • 下载:GitHub

使用方法

  1. 下载插件,解压得到文件夹,放入插件文件夹usr/plugins/,将文件夹重命名为SiteRunningTime
  2. 进入后台,在插件管理启用插件;
  3. 设置插件,如图:
    setting1.png

按照图上的格式填写网址建立时间,比如2018-10-03 13:20:00,然后自定义显示格式、时间自动刷新(建议显示到秒的时候选择)以及 css 样式。

  1. 保存设置,刷新网址即可看到效果。

修改显示效果

插件默认的显示效果是本站已经运行*年*月*日*时*分*秒,如果你想要显示的是本站已经运行*天*时*分*秒,那么就需要修改插件的代码了。

修改Plugin.php文件

在插件的文件夹找到Plugin.php文件,用编辑器打开,在最下面有一段Javascript的标签,时间显示就是这一段代码计算输出的:

    <script>
        var startTime="$startTime";
        var calculationTime=function(startTime){
        var s1=new Date(startTime.replace(/-/g,"/")),
        s2=new Date(),
        runTime=parseInt((s2.getTime()-s1.getTime())/1000);
        var year=Math.floor(runTime/86400/365);
        runTime=runTime%(86400*365);
        var month=Math.floor(runTime/86400/30);
        runTime=runTime%(86400*30);
        var day=Math.floor(runTime/86400);
        runTime=runTime%86400;
        var hour=Math.floor(runTime/3600);
        runTime=runTime%3600;
        var minute=Math.floor(runTime/60);
        runTime=runTime%60;
        var second=runTime;
        document.querySelector(".SiteRunningTime > .year").innerText=year;
        document.querySelector(".SiteRunningTime > .month").innerText=month;
        document.querySelector(".SiteRunningTime > .day").innerText=day;
        document.querySelector(".SiteRunningTime > .hour").innerText=hour;
        document.querySelector(".SiteRunningTime > .minute").innerText=minute;
        document.querySelector(".SiteRunningTime > .second").innerText=second};
        setInterval("calculationTime(startTime)",1000);
        var node = document.createElement("span");
        node.innerHTML = '本站运行了<label class="year"></label><label class="month">0</label>月<label class="day">0</label>日<label class="hour">0</label>时<label class="minute">0</label>分<label class="second">0</label>秒';node.className = "SiteRunningTime";
        document.getElementById("footer").appendChild(node);
    </script>

我们找到这段代码,用下面这一段代码进行替换:

    <script>
        var startTime="$startTime";
        var calculationTime=function(startTime){
        var s1=new Date(startTime.replace(/-/g,"/")),
        s2=new Date(),
        runTime=parseInt((s2.getTime()-s1.getTime())/1000);
            var day=Math.floor(runTime/86400);
            runTime = runTime%86400;
            var hour=Math.floor(runTime/3600);
            runTime = runTime%3600;
            var minute=Math.floor(runTime/60);
            var second=runTime%60;
            document.querySelector(".SiteRunningTime > .day").innerText=day;
            document.querySelector(".SiteRunningTime > .hour").innerText=hour;
            document.querySelector(".SiteRunningTime > .minute").innerText=minute;
            document.querySelector(".SiteRunningTime > .second").innerText=second};
            setInterval("calculationTime(startTime)",1000);
            var node = document.createElement("span");
            node.innerHTML = '本站运行了<label class="day">0</label>天<label class="hour">0</label>时<label class="minute">0</label>分<label class="second">0</label>秒';
            node.className = "SiteRunningTime";
            document.getElementById("footer").appendChild(node);
    </script>

下面就可以看到显示效果了本站已经运行*天*时*分*秒。当然,具体文字想怎么显示,直接在代码里修改文字就可以实现了。

文章目录