MySQL和PHP页面同时正确显示中文 & PHP date函数的用法

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

记录下项目遇到的问题和解决方法。

1. 显示中文

在PHP页面显示的时候,我们通常需要在开头加入下面的代码来让我们的页面能正确显示中文:

<pre name="code" class="html"><meta content = text/html; charset=UTF-8 http-equiv = Content-Type>

 
是的,让页面显示UTF-8, 这样我们在写诸如此类的php代码时 

echo '哈哈哈';
就能正确的在页面上显示中文了。

但是这样会有一个问题,我们存储到数据库时,如果直接写入中文,会导致在数据库里面看起来是这样的:


这样虽然你从PHP页面上打印出来的内容是争取的,可是如果你直接查看数据库的话,就不懂是什么内容了。

同样的,如果你在数据库里面输入的是能看懂的GBK编码的中文,如果用页面打印就变成了这样


那到底改怎么办?我们想要找到一种方法,要同时满足:

1. 通过php代码 echo直接可以打印出来中文

2. 在数据库里面显示的是能看懂的中文

3. 读取数据库到页面显示时也是能看懂的中文


毫无疑问,要想满足第1条,那么我们在开头毫无疑问要加入:

<meta content = text/html; charset=UTF-8 http-equiv = Content-Type>

那如何将UTF-8编码的中文存储到数据库后我们可以看懂呢?这里就需要进行两次转换了,UTF-8和GBK之间的转换了。

在我们从页面的内容(UTF-8编码)存到数据库(GBK)时和从数据库(GBK)读出到页面(UTF-8)

我们只需要用到这个函数:

iconv()


想要了解关于这个函数更多的内容请点击:


PHP:iconv- Manual


所以,我们在输入到数据库时,进行下列的转换:


同理,如果是从数据库读出来到页面,我们就进行gbk到utf-8的转换。



2. PHP:date()函数


date函数是用来从时间戳换算成我们想要的日期格式然后打印出来,这里主要记录一下各个单词代表的含义:

参数如下:
a - "am" 或是 "pm" 
A - "AM" 或是 "PM" 
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31" 
D - 星期几,三个英文字母; 如: "Fri" 
F - 月份,英文全名; 如: "January" 
h - 12 小时制的小时; 如: "01" 至 "12" 
H - 24 小时制的小时; 如: "00" 至 "23" 
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12" 
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23" 
i - 分钟; 如: "00" 至 "59" 
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31" 
l - 星期几,英文全名; 如: "Friday" 
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12" 
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12" 
M - 月份,三个英文字母; 如: "Jan" 
s - 秒; 如: "00" 至 "59" 
S - 字尾加英文序数,二个英文字母; 如: "th","nd" 
t - 指定月份的天数; 如: "28" 至 "31" 
U - 总秒数 
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六) 
Y - 年,四位数字; 如: "1999" 
y - 年,二位数字; 如: "99" 
z - 一年中的第几天; 如: "0" 至 "365" 
如果显示的时间与系统不一致,就要改PHP.ini配置文件。
系统默认是UTC时间 
可以打开php.inc 
设置   date.timezone = PRC

所以,如果我们想要输出例如  2015年05月27日 15:45格式的时间,我们就需要这样写:

echo date('Y年m月j日, H:i', $suggestions['suggestion_time']);

想要输出其他格式的,参照上面的各个参数就好了!


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL 索引
936. 【mysql】locate函数
936. 【mysql】locate函数
22 2
|
1月前
|
SQL 关系型数据库 MySQL
927. 【mysql】coalesce 函数
927. 【mysql】coalesce 函数
23 3
|
1月前
|
关系型数据库 MySQL
926.【mysql】 date 函数
926.【mysql】 date 函数
68 3
|
1月前
|
关系型数据库 MySQL
925. 【mysql】convert 函数
925. 【mysql】convert 函数
23 3
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】2、MySQL 的数据控制语言、函数和约束
【MySQL 数据库】2、MySQL 的数据控制语言、函数和约束
31 0
|
7天前
|
XML JSON API
快速淘宝商品详情页面API接口传输 php
PI(Application Programming Interface,应用程序接口)是一组预定义的函数、协议和工具,用于构建软件应用程序之间的交互。它允许不同的软件系统和应用通过统一的接口进行数据交换和通信
|
11天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
11天前
|
SQL 关系型数据库 MySQL
DQL语言之常见函数(mysql)
DQL语言之常见函数(mysql)
|
18天前
|
SQL 关系型数据库 MySQL
mysql多表查询、函数查询
mysql多表查询、函数查询
|
1月前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
199 2