Hot For Coding
PHP判断一个日期是不是今天

为使日期时间表示的更友好,我们对刚发布的信息很少使用2012-06-28 10:05:00这样的格式显示,而是采用类似微博那种多少秒前或者多少分钟以及多少天前!在PHP中要实现这个功能很容易,以下提供两种实现方式,效率没有做过测试,感觉第一种比较简便。

第一种

<?php
/**
 * PHP判断一个日期是不是今天
 * Nicholas Lee www.qttc.net
 */
echo '<meta charset="utf-8" />';
// 拟设一个日期
$a = '2012-06-28 10:10:10';
// 截取日期部分,摒弃时分秒
$b = substr($a,0,10);
// 获取今天的日期,格式为 YYYY-MM-DD
$c = date('Y-m-d');
// 使用IF当作字符串判断是否相等
if($b==$c){
  echo '是今天';
}else{
  echo '不是今天';
}
?>

...

READ ALL

MySQL中遍历多次查询与单次查询全部的效率

有这样一个需求:要查询id从1到100的数据,有两种解决方式

遍历100次,每次查询单条数据

<?php
// Nicholas Lee www.qttc.net
for($i=1;$i<=100;$i++){
  $id = $i;
  $sql = 'SELECT * FROM tab id='.$id;
  // ...查询数据
}
?>

一次查询100条信息

<?php
// Nicholas Lee www.qttc.net
$sql = 'SELECT * FROM tab id>=1 AND id<=100';
// ... 查询数据
?>

...

READ ALL

尼玛,日本机房又抽风了吗?

入手Linode前曾仔细观察测试了六个机房的速度,其中就在Fremont与日本机房之间纠结,不知该选哪个?最后还是选择了小日本。

网站上线没到一个月就出现ping值过高,当时误以为可能是暂时的,没太在意。

尼玛,现在ping值又到400-500间了,还偶尔有掉包情况!小日本机房估计是待不下了,正在考虑把机房从小日本迁到Fremont中。。。

本机ping值结果

full

站长工具ping结果

full

虽说ping高不一定就表示什么?但还是严重影响心情啊~~~!!!

...

READ ALL

惨:我的Win7被黑屏了

鼠标都不显示

这事是几天前,当时下班回来像往常一样打开电脑,显示登录界面的时候输入密码回车随即登录界面渐变消失黑屏状态,误以为是系统正在加载程序没太在意。等了将近两分钟后发现还是黑屏状态感觉不对劲就冷启动,同样到登录界面输入密码回车后黑屏,这一次我观察了将近十五分钟发现屏幕还是一片漆黑,鼠标,任务栏都不显示,立即确定系统出问题了。

Ctrl+Alt+Delete 有反应

首先,很快判断这不是电脑硬件问题,因为登录界面都能正常显示,按Ctrl + Alt + Delete可以打开提示操作界面并操作,但点击启动任务管理器就又黑屏了。锁定切换用户等其他操作都正常,这下是彻底没辙了。

...

READ ALL

一个PHP生成短网址函数

短网址相比大家都不陌生吧,特别是微博上的应用更是把它带火了,其实要实现这个功能也很简单。

<?php
/**
 * Nicholas Lee www.qttc.net
 * 短网址
 */
 
function urlShort($url){
  $url= crc32($url);
  $result= sprintf("%u", $url);
  $sUrl= '';
  while($result>0){
    $s= $result%62;
    if($s>35){
      $s= chr($s+61);
    } elseif($s>9 && $s<=35){
      $s= chr($s+ 55);
    }
    $sUrl.= $s;
    $result= floor($result/62);
  }
  return $sUrl;
}

$url = 'www.qttc.net';
$sUrl = urlShort($url);

echo '<meta charset="utf-8" />';
echo '网址:'.$url.'<br />';
echo '短网址:'.$sUrl;
?>

...

READ ALL

PDO不能使用预处理的两处地方

有些童鞋使用预处理方式取数据库信息时发现结果是空,但数据库的确存在信息。这个是新手经常忽略的一个地方,甚至可能调试半天都不知道问题出在哪里?

MySQL中的LIMIT关键字不能使用预处理

错误的: 以下语句在LIMIT中使用了:start:num预处理绑定参数方式导致取不出数据,但不会报错

<?php
// Nicholas Lee www.qttc.net
$pdo = new PDO('mysql:host=localhost;dbname=test',root,root);
$start = 20;
$num = 10;
$sql = 'SELECT * FROM tab LIMIT :start,:num';
$stmt = $pdo->prepare($sql);
$param = array(':start'=>$start,':num'=>$num);
$stmt->execute($param);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($data); 
?>

...

READ ALL

【公告】小站已开启RSS支持

一直以来,就没有把RSS当作一回事,也没有使用RSS阅读器的习惯。小站开通到现在得益于许多博友的支持,同时也有部分博友一直希望小站支持RSS。

决定研究RSS

趁端午节捣鼓了一番,发现RSS也是XML的一种,也差不多属于一种标准。利用RSS阅读器不需要挨个去逛每个网站看看有没有最新文章发布。经过搜索,编写于今天上线。

RSS火狐测试截图

full

RSS地址: www.qttc.net/rss.xml

欢迎各位博友订阅

...

READ ALL

PHP一个时间格式转换实例

目前已知一个时间,如 2012-06-25 13:22:17

要转换为 Mon, 25 Jun 2012 13:22:17 +0800

要实现这个功能只能先把时间转换为时间戳,然后再转为为目标格式。主要使用date函数,我之前也写过一篇文章《PHP函数date与time使用》

代码

<?php
/**
 * PHP时间格式转换
 * Nicholas Lee www.qttc.net
 */
echo '<meta charset="utf-8" />';
// 拟设一个时间格式
$a = '2012-06-25 13:22:17';
echo "目前格式:\t".$a.'<br />';
 
// 把时间转换为时间戳
$ux = strtotime($a);
echo "日期转时间戳:\t".$ux.'<br />';
 
// 获取目标格式
$b = date('r',$ux);
echo "目标格式:\t".$b;
?>

...

READ ALL

PHP随机产生一组不重复的数字

在PHP里,要实现这个功能非常容易,没什么技术含量。但哪种执行效率更高一些呢?我写了两种获取随机数的方式。

第一种

<?php
/**
 * PHP获取一组随机数字不重复
 * Nicholas Lee www.qttc.net
 */
$a = microtime();
function createRandID($m){
  // 产生一个从1到$m的数组
  $arr = range(1,$m);
  // 打乱数组
  shuffle ($arr); 
  // 取前十个
  for($i=0;$i<=10;$i++){
    // 赋值给新数组$n
    $n[] = $arr[$i];    
  }
  // 返回这组数字
  return implode($n,',');
}
 
echo createRandID(700000);
echo '<br />';
echo $a - microtime();
?>

...

READ ALL

CSS3 calc方法

CSS3有一个calc()方法,应该是calculate的简称,语法

calc(expression)

里面是一个表达式,CSS一直不能做加减运算,这也是CSS不够灵活的地方,但在calc就可以做一些简单的运算

看看W3C对表达式的描述

Required. A mathematical expression. The result will be used as the value
The following operators can be used: + - * /

很明显,这个表达式可以用加减乘除

/*
 * Nichoals Lee www.qttc.net
 */
#div1 {
  position: absolute;
  left: 50px;
  width: calc(100% - 100px);
  border: 1px solid black;
  background-color: yellow;
  padding: 5px;
  text-align: center;
}

...

READ ALL