如何向mysql数据库中插入日期?

musicfree_uibe 2003-01-19 09:25:16
我已经把日期格式化成 2003-1-19 这种格式,mysql的字段是date类型的
...全文
2005 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
suasun 2003-03-02
now()
回复
xqi8 2003-03-01
换成varchar格式吧
回复
yueok 2003-03-01
$timenow=time();
这样就可以取得当前的时间,这是一个时间戳,就是从1970年开始到现在的秒数,到现在已经有十位数长了,所以设计数据库的时候需要设计为int(10);
从数据库里取出时间以后,你可以用date函数来将时间戳变成你想要的时间格式。
如:
echo date("Y-m-d h:i:s");
就显示的是当前的时间:2003-03-01 20:32:34
echo date("Y-m-d h:i:s","1000000000");
则显示的则是时间戳为10000000000的时间:2001-09-09 09:46:40

如果要将一个2001-09-09 09:46:40的时间换算成时间戳,则用换算函数:gmmktime
具体的用法
echo gmmktime (09,46,40,09,09,2001);
显示为: 10000000000
六个参数分别依次对应小时、秒、月、日、年

附,date函数的用法:
string date ( string format [, int timestamp])


返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。

注: 有效的时间戳典型范围是格林威治时间 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。(此范围符合 32 位有符号整数的最小值和最大值)。在 Windows 系统中此范围限制为从 1970 年 1 月 1 日到 2038 年 1 月 19 日。

要将字符串表达的时间转换成时间戳,应该使用 strtotime()。此外一些数据库有一些函数将其时间格式转换成时间戳(例如 MySQL 的 UNIX_TIMESTAMP 函数)。


格式字串可以识别以下字符:


a - "am" 或 "pm"

A - "AM" 或 "PM"

B - Swatch Internet Time(【译者注】参见 http://swatch.com/alu_beat/fs_itime.html)

d - 月份中的第几天,有前导零的 2 位数字,例如 "01" to "31"

D - 星期中的第几天,文本表示,3 个字母,例如 "Fri"

F - 月份,完整的文本格式,例如 "January"

g - 小时,12 小时格式,没有前导零,例如 "1" 到 "12"

G - 小时,24 小时格式,没有前导零,例如 "0" 到 "23"

h - 小时,12 小时格式,例如 "01" 到 "12"

H - 小时,24 小时格式,例如 "00" 到 "23"

i - 分钟,例如 "00" 到 "59"

I(“i”的大写的字母)- 如果是夏令时则为 "1",否则为 "0"

j - 月份中的第几天,没有前导零,例如 "1" 到 "31"

l(“L”的小写字母)- 星期中的第几天,完整的文本格式,例如 "Friday"

L - 布尔值表示是否为闰年,例如 "0" 或者 "1"

m - 月份,例如 "01" to "12"

M - 月份,文本表示,3 个字母,例如 "Jan"

n - 月份,没有前导零,例如 "1" 到 "12"

O - 与格林威治时间相差的小时数,例如 "+0200"

r - RFC 822 格式的日期,例如 "Thu, 21 Dec 2000 16:01:07 +0200"(PHP 4.0.4新增)

s - 秒数,例如 "00" 到 "59"

S - 每月天数后面的英文后缀,2 个字符,例如 "st","nd","rd" 或者 "th"

t - 给定月份所应有的天数,例如 "28" 到 "31"

T - 本机所在的时区,例如 "EST" 或 "MDT"(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”。)

U - 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数

w - 星期中的第几天,数字表示,例如 "0"(星期天)到 "6" (Saturday)

W - ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的)

Y - 年份,4 位数字,例如 "1999"

y - 年费,2 位数字,例如 "99"

z - 年份中的第几天,例如 "0" 到 "365"

Z - 时差偏移量的秒数(例如 "-43200" 到 "43200")。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。

回复
simplez 2003-03-01
能不能详细讲解一些int型的如何操作??
回复
wmchief 2003-01-20
可以好几种格式,如下
y-m-d h:i:s
ymdhis

用时间型,可以操作从××年。。。到××年。。。的记录的
回复
ydyd 2003-01-20
我用的日期是data型的,所以$time得到的就是年月日,我的程序运行的很好,有什么问题吗?
回复
sandyuk 2003-01-20
telescope(望远镜) 有道理!!!
回复
telescope 2003-01-20
会不会玩啊,保存日期一般用int型,保存的应该是时间戳,它是一个从1970年累计到现在的秒数!
如果不用时间戳,时间格式转换还不累死你?!!
回复
ydyd 2003-01-19
$time=date("Y-n-d");
sql语句为"insert into 表名(列名) values('$time')"
回复
ientium 2003-01-19
好像一般用varchar保存date
回复
学习……
回复
MeE 2003-01-19
换成varchar格式吧
我觉得MYSQL的date格式是多余的
要不就是给外国人用的 对我们一点用处没有
回复
pantech_36 2003-01-19
to_day
回复
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2003-01-19 09:25
社区公告
暂无公告