<?php
$data1 = mktime(0,0,0,1,1,1950);
$data2 = mktime(0,0,0,1,1,2000);
$rand_time = rand($data1,$data2);
echo date("Y-m-d H:i:s",$rand_time);
?>
$data1 = mktime(0,0,0,1,1,1950);
$data2 = mktime(0,0,0,1,1,2000);
$rand_time = rand($data1,$data2);
echo date("Y-m-d H:i:s",$rand_time);
?>
解决方案 »
- 请问win2008 server里面如何安装和配置php?
- 如何写这个SQL语句
- 请教:winXP怎么样配置php支持mysql呢?
- 请教:如何发现url输入错误,及转向错误页
- http://www.shaadi.com/这样的开发出来大概要多少?
- 请问有什么好的计算器介绍啊?功能要齐全点的,用php+mysql的。非常感谢!
- 圣诞快乐 up5分
- Mysql中 如何指定 某记录的值为随机数 谢谢
- PHP咋就这德行!?
- 在www.php.net下载的900多k的php win2k下的自动安装版本跟4M多的手动版本有什么不同。
- 请教一个php删除xml节点的问题,看代码
- 大家帮忙看一下百度这是用的什么技术啊?
//1950<1970 在windows中不能直接mktime()
//但1950到2000 与1974到2024中每一天存在一一对应的关系
//所以可先求出1974-2024中的随机一天,再把年份减24即可$start=mktime(0,0,0,1,1,1974);
$end=mktime(23,59,59,1,1,2024);
$rand=rand($start,$end);
$year=date("Y",$rand)-24;//1974-24=1950
echo $year.date("-m-d H:i:s",$rand)."\n";//1952-07-15 20:39:18
?>
要看你php的版本了,php5可以直接用mktime().
1楼和2楼写出来了,楼主的题目是哪里来的,哈哈!思路就是:生成Unix随机的时间截,因为是时间截,所以绝对是有效日期(处理器问题排除),然后就是格式化了.
1950年有365天,1974年有365天
1951年有365天,1975年有365天
1952年有366天,1976年有366天
1953年有365天,1977年有365天
...
1976年366天,2000年有366天 (还好是2000年,如果1900就只有365天了就不能这么弄了)
...
1999年365天 2023年365天
2000年366天,2024年有366天故后者年份减24即是前者,(如果只算年月日时分秒的话)
比如 1976 有x月y日,则 1950年也有x月y日
我一开始也是用mktime(0,0,0,1,1,1950)但报错说windows不允许负的时间戳
<b>Warning</b>: mktime(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970
又改成mktime(0,0,0,1,1,1970)也不行,
估计是时区为东8区的关系 要改成mktime(8,0,0,1,1,1970)以后的时间才让用我这个24年倒是没取好,如果取28年的话连星期几都是一样的