我需要从vBulletin中的用户表中提取所有用户名的列表,这些用户名是在特定日期之前注册的人员。例如,我需要所有成员到10月1日,但之后不需要。
我认为'joindate'字段以秒表示。例如。 1116022743.如何在此基础上提取用户名?
欢呼声
答案 0 :(得分:0)
很难在不知道VB表结构的情况下给出确切答案,但查询类似于
$date = strtotime('10/01/2010');
/* this is the date you are basing our query on
we make a timestamp of it for comparison */
$sql = "SELECT * FROM `vb_users_table` WHERE `joindate` <= '$date'";
那些“秒”是时间戳btw(技术上是秒,但正确的术语是时间戳)。
示例:
<?php
$date = strtotime('10/01/2010'); //1st oct 2010
$old = strtotime('3/9/2009'); // 9th mar 2009
$new = strtotime('3/9/2011') // 9th mar 2011
/* substitute $old with $new to see the effect */
if($old<=$date) {
echo date('d M Y', $old) . ' is before ' . date('d M Y', $date);
} else {
echo date('d M Y', $old) . ' is not before ' . date('d M Y', $date);
}
答案 1 :(得分:0)
您可以使用UNIX_TIMESTAMP
MySQL函数来帮助构建查询。这是一个查询,它将提取vBulletin安装中所有用户的用户名,其加入日期是2010年10月1日之前:
SELECT username FROM user WHERE joindate < UNIX_TIMESTAMP('2010-10-01 00:00:00');
如果您想反过来(将时间戳从UNIX表单转换为可读表格),您可以使用FROM_UNIXTIME
。