9159金沙游艺场-奥门金沙游艺场-[欢迎您]

9159金沙游艺场为您呈现最新的面貌!,目前注册送体验金,欢迎您将成为影视娱乐行业新的风向标,是亚洲的优质娱乐先锋。

同步服务器时间【9159金沙游艺场】

日期:2020-01-04编辑作者:服务器

javascript小本事:同步服务器时间、同步倒计时

事前在互连网来看有人提问,怎样在页面上黄金年代道显示服务器的小运,其实实现情势有二种,恐怕平凡人立马就悟出能够使用Ajax每间距风流洒脱秒去央浼服务器,然后将服务器获取届时刻显示在页面上,那样固然能够落实,但存在二个相当的大的标题,那正是每间距生机勃勃秒 去央浼服务器,那样若是客户多了,服务器就能够崩溃内部存款和储蓄器占用率会相当大),所以以小编之见,这种格局不可行,作者那边给出大器晚成种缓和方案,能够落到实处协同服务器时间、同步倒计时,却不占用服务器太多能源,上边作者给写完毕的笔触

9159金沙游艺场 1

率先步,当客商率先次浏览页面时,服务器首先得到当前时间并呈现在页面上举例:展现在ID为timebox span中)

其次步,设置三个每间隔一秒就总结新的时日新时间以服务器时间为早先值,然后每间距生机勃勃秒累积生机勃勃秒并生成新的年华)

其三步,呈现第二步总结的时日

是否很简短,总括成一句话正是:以服务器时间为伊始值,然后在页面上活动每间距生龙活虎秒就拉长风流倜傥秒生成新时间,那样就能够确定保障与服务器时间同步了,误差基本在几秒内,应该没什么了,好了看一下兑现的代码吧:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

<span id="timebox">11:21:55</span> //第一次将服务器时间显示在这里

<script type="text/javascript">

    $(function () {

        var oTime = $("#timebox");

        var ts = oTime.text().split(":", 3);

        var tnums = [parseInt(ts[0]), parseInt(ts[1]), parseInt(ts[2])];

        setInterval(function () {

            tnums = getNextTimeNumber(tnums[0], tnums[1], tnums[2]);

            showNewTime(tnums[0], tnums[1], tnums[2]);

        }, 1000);

        function showNewTime(h, m, s) {

            var timeStr = ("0" + h.toString()).substr(-2) + ":"

                            + ("0" + m.toString()).substr(-2) + ":"

                            + ("0" + s.toString()).substr(-2);

            oTime.text(timeStr);

        }

        function getNextTimeNumber(h, m, s) {

            if (++s == 60) {

                s = 0;

            }

            if (s == 0) {

                if (++m == 60) {

                    m = 0;

                }

            }

            if (m == 0) {

                if (++h == 24) {

                    h = 0;

                }

            }

            return [h, m, s];

        }

    });

</script>

代码很简短在这里就十分的少作注脚(笔者下面只呈现时分秒,我们也得以加上日期,加上日期可在当h==0时,直接从服务器获取叁个日子或完整的岁月,作为叁回时间的核对State of Qatar,不懂的能够在底下斟酌,我会立马回复的,然后依据这种思路来完成一下协同倒计时,首先说美素佳儿(Friso卡塔尔(قطر‎(Nutrilon卡塔尔国下,什么是联合具名倒计时,便是近乎秒杀雷同,设置贰个结束时间,然后总结当前天子与结束时间之间隔断,并且必备保证在不相同的微机、浏览器上出示的倒计时时间均意气风发致,实今世码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

<!DOCTYPE html>

<html>

<head>

    <title>同步倒计时</title>

    <script type="text/javascript" src="jquery-1.4.4.min.js"></script>

</head>

<body>

    <span id="timebox">1天00时00分12秒</span> <!--假设:1天00时00分12秒是从服务器获取的倒计时数据-->

    <script type="text/javascript">

        $(function () {

            var tid = setInterval(function () {

                var oTimebox = $("#timebox");

                var syTime = oTimebox.text();

                var totalSec = getTotalSecond(syTime) - 1;

                if (totalSec >= 0) {

                    oTimebox.text(getNewSyTime(totalSec));

                } else {

                    clearInterval(tid);

                }

            }, 1000);

            //根据剩余时间字符串计算出总秒数

            function getTotalSecond(timestr) {

                var reg = /d+/g;

                var timenums = new Array();

                while ((r = reg.exec(timestr)) != null) {

                    timenums.push(parseInt(r));

                }

                var second = 0, i = 0;

                if (timenums.length == 4) {

                    second += timenums[0] * 24 * 3600;

                    i = 1;

                }

                second += timenums[i] * 3600 + timenums[++i] * 60 + timenums[++i];

                return second;

            }

            //根据剩余秒数生成时间格式

            function getNewSyTime(sec) {

                var s = sec % 60;

                sec = (sec - s) / 60; //min

                var m = sec % 60;

                sec = (sec - m) / 60; //hour

                var h = sec % 24;

                var d = (sec - h) / 24;//day

                var syTimeStr = "";

                if (d > 0) {

                    syTimeStr += d.toString() + "天";

                }

                syTimeStr += ("0" + h.toString()).substr(-2) + "时"

                            + ("0" + m.toString()).substr(-2) + "分"

                            + ("0" + s.toString()).substr(-2) + "秒";

                return syTimeStr;

            }

        });

    </script>

</body>

</html>

为了有限支撑倒计时的正确度,小编使用了先将倒计时时刻距离统大器晚成总结成秒,然后减1秒再重新生成时间格式,当然也得以固守地点时间协同的事例,直接开展时间压缩,方法非常多,笔者那个不必然是最优的,接待大家调换,多谢!


9159金沙游艺场 2


从前在网络看看有人提问,怎么样在页面上同步呈现服务器的时光,其实完成方式有两种,可...

本文由9159金沙游艺场-奥门金沙游艺场-[欢迎您]发布于服务器,转载请注明出处:同步服务器时间【9159金沙游艺场】

关键词:

在linux CentOS6上安装web环境,centos6web

在linux CentOS6上安装web环境,centos6web 感谢浏览,欢迎交流=。=     都说linux作为服务器优于window,近期也是学习了下...

详细>>

transition的多本特性

9159金沙游艺场,transition的四个属性,transition四个 transition-property 规定设置过渡效果的 CSS 属性的名称。 transition-du...

详细>>

python处理Excel【9159金沙游艺场】,pythonexcel

python处理Excel,pythonexcel Python中一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库复制和修改E...

详细>>

python的类形式和静态方法

python的类方法和静态方法,python静态 本文实例讲述了python的类方法和静态方法。分享给大家供大家参考。具体分析如...

详细>>