利用PHP实现倒计时

      文章,程序设计,网页开发   评论

闲着无聊死了....守望屁股打了一晚上了
马上要高考了...没事弄个倒计时玩玩

设定时区
中国是GMT-8(其实时区这个东西吧...我有个关于某个不会数三的胖子的悲伤的故事)

date_default_timezone_set('Etc/GMT-8');

取服务器时间
PHP自带了time函数来取服务器时间戳

$TimeNow = time();

然后与高考日期(06-07和06-08)比较
比较的时候需要用strtotime函数将文本型的日期转换为时间戳方便比较
首先需要判断是否高考已经结束
这里用了date来格式化日期,其中Y-m-d代表年-月-日

strtotime(date('Y-m-d', $TimeNow))

细节讲完了,大致思路如下:

设定一坨变量
判断当前时间和高考结束日期
结束了->输出 未结束->判断是否正在进行高考
判断是否进行高考
是->输出 否->输出

例行的源码如下

<?php
    date_default_timezone_set('Etc/GMT-8');
    $StartDate = '2017-06-07';
    $EndDate = '2017-06-08';
    $TimeNow = time();
    $LeftTime = strtotime($StartDate) - $TimeNow;
    if($LeftTime <= 0){
        //因为之前取得是差值 所以这里是负数 用abs函数取绝对值 并且加回减掉的那一天
        $LeftTime = abs($LeftTime) + 86400;
        $string = "高考进行中 %d 天";
    }else{
        $string = "距高考还有 %d 天";
    }
    if(strtotime($EndDate) < strtotime(date('Y-m-d', $TimeNow))){
        $string = "滑鸡 高考结束惹";
    }                                   
    //intval将文本型的时间戳转换为整数型并运算获得天数       
    printf($string,intval($LeftTime / 86400));
?>

PS:再插一句 我以后打死也不用typecho的代码格式写一大段了......排版反人类





PHP通过Socket(UDP)向易语言程序传递数据(数据报组件)

      文章,程序设计,网页开发   1 条评论

要开学了...丫哒
努力奋斗一年...所以以后不怎么冒泡了 QwQ


写弹幕机的时候为了赶时间直接用易语言写的 突然想到了用php写网页 向服务器传递数据......
百度和Google(404 Not Found)了半天没找到好的答案
最后在论坛的小角落里找到了部分实现原理及代码......然后自己搞了起来

易语言方面主要用到的是数据报组件 核心组件库自带
需要手动设置端口
1.png
代码如下
需要使用数据报.取回数据() 返回字节集
3.png
然后是PHP
Socket这方面需要手动出门右转 传送门 <<戳我 戳我
(手动滑稽)其实我也不会

因为$_GET返回的是数组 所以这里用implode函数拆成字符串 这样就会返回一串字符
如果是多个参数 可以用

implode(欲插入的字符 文本型,欲拆分的数组);

就会返回xxxxxx&(插入的字符)xxxxx&xxxxxx这样的一串字符串
2.png
然后嘛...就不用管了...
4.png


其他注意事项

1.如果返回数据是乱码的话注意编码问题 PHP我习惯写utf-8 而易语言是Ansi
2.注意全半角 注意全半角 注意全半角 重要的话说三遍 PHP全角可是要出事的
3.$_GET和$_POST同理
4.如果易语言接收不到数据 而且CPU占用率直线上升 确定不是PHP的问题之后 CMD运行netsh winsock reset即可解决
5.突然想到了...确保php_sockets.dll或者sockets.so支持库正常

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5