PHP时间相减总结

by admin on 2019年9月5日

import time

# 导入 smtplib 和 MIMEText 

直白上源码:

自个儿利用的是MySQLdb操作的MYSQL数据库。先来叁个简短的事例吗:

1.

import datetime

import smtplib 

#!/usr/bin/env python
# -*- coding: utf-8 -*


import datetime

#unix_ts=1439111215

while True:
    input = raw_input("Please input the unix_ts('exit' to exit):")

    try:

        if input == 'exit':
            break
        else:
            unix_ts = float(input)
            mytime = datetime.datetime.fromtimestamp(unix_ts)
            print mytime
    except (ValueError,TypeError),diag:

        print "your input is not right!"

 

PHP里怎么将2个字符串时间相减获得秒数?
$a = ‘2010-02-05 16:08:20’;
$b = ‘2010-02-05 16:09:20’;
b比a大1分钟也正是60秒,怎么相减获得60

 

from email.mime.text import MIMEText 

运作结果:

1
2
3
4
5
6
7
8
9
10
import MySQLdb
 
try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db='test',port=3306)
    cur=conn.cursor()
    cur.execute('select * from user')
    cur.close()
    conn.close()
except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])

把那么些转化为具体的年华戳,用strtotime

_time = time.time

 

澳门威斯尼人平台登陆 1

  请当心修改你的数据库,主机名,顾客名,密码。

strtotime($b)-strtotime($a)=60

 

# 定义发送列表 

上边来大致演示一下布署数据,批量布署数据,更新数据的事例吗:

获得秒数,然后就可以减了

_Nowtime = time.strftime(‘%Y-%m-%d’,time.localtime(time.time()))

mailto_list=[“[email protected]”,”[email protected]”] 

 

2.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import MySQLdb
 
try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='root',port=3306)
    cur=conn.cursor()
     
    cur.execute('create database if not exists python')
    conn.select_db('python')
    cur.execute('create table test(id int,info varchar(20))')
     
    value=[1,'hi rollen']
    cur.execute('insert into test values(%s,%s)',value)
     
    values=[]
    for i in range(20):
        values.append((i,'hi rollen'+str(i)))
         
    cur.executemany('insert into test values(%s,%s)',values)
 
    cur.execute('update test set info="I am rollen" where id=3')
 
    conn.commit()
    cur.close()
    conn.close()
 
except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])

$bbb= “08:55 “;
$aaa= “08:50 ”   ;
echo   ceil((strtotime($bbb)-strtotime($aaa))/60);
?>

_lasttime = datetime.datetime.now()  – datetime.timedelta(days =1) 

# 设置服务器名称、客户名、密码以及邮件后缀 

  请小心一定要有conn.commit()那句来交付业务要不然不能真正的插入数据。

 

_lasttime = str(_lasttime).split(‘ ‘)[澳门威斯尼人平台登陆 ,0]

mail_host = “smtp.163.com” 

运作之后小编的MySQL数据库的结果就不上图了。

3.

print _Nowtime

mail_user =
“[email protected]” 

 

收获系统当下时间 :
$ctime=strtotime(date(“Y-m-d H:i:s”));

print _lasttime

mail_pass = “xx” 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import MySQLdb
 
try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='root',port=3306)
    cur=conn.cursor()
     
    conn.select_db('python')
 
    count=cur.execute('select * from test')
    print 'there has %s rows record' % count
 
    result=cur.fetchone()
    print result
    print 'ID: %s info %s' % result
 
    results=cur.fetchmany(5)
    for r in results:
        print r
 
    print '=='*10
    cur.scroll(0,mode='absolute')
 
    results=cur.fetchall()
    for r in results:
        print r[1]
     
 
    conn.commit()
    cur.close()
    conn.close()
 
except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])

$ctime-$logtime>180

 

mail_postfix=”163.com” 

  运维结果就不贴了,太长了。

4.

time import datetime _time = time.time
_Nowtime = time.strftime(%Y-%m-%d,time.localtime(time.time()))
_lasttime = datetime.datetime.now() – datetime.timedelta(days =1)
_lastt…

 

询问后普通话会准确展现,但在数据库中却是乱码的。经过自己从网络检索,发现用二个性能有可消除:

时光戳相比较

举例,数据Curry面包车型客车光阴戳:1276650817 是二零零六年11月三十日 9:13:37
此时此刻地点时间是:1276674758 是二零一零年2月二一日 15:52:38
本身想让前台展现,此小说是XXX天XXX时辰XXX分钟前发布


$time = 1276674758-1276650817;
$yourhour = (int)($time/(60*60));
$yourmin = (int)($time%(60*60)/60);

把七个时间戳相减,然后把收获的数额跟一天的秒数相除再取整,然后再把多余的跟小时去相除取整,以此类推正是啊

5.

$date1 = “2004-12-08 09:18:12”;
echo strtotime($date).”
“;
echo strtotime($date1).”
“;
$date2 = strtotime($date1)-strtotime($date);
echo $date2; ?>
那样获得的$date2正是距离的秒数,再除以3600就是小时了

6.

我从某页面上匹配了时间     $year = 2010  $month = 07  $day = 01  $hour = 17  $minute = 30    请问如何才能将今天的日期与上面这些值(年 月 日 时 分)相减,得出两个日期之间相差的天数、时间、分钟?然后print出来?

 

# 发送邮件函数 

在Python代码 

UNIX时间戳

 

10.2  日期和岁月

在开拓Web程序时,时间起着至关心珍视要的魔法。不止在数据存款和储蓄和体现时索要日期和岁月的管理,有局地效率模块的付出,时间日常是首要的。举个例子,网页静态化要求决断缓存时间、总结页面访谈消耗的时光、在差异的时光段提供区别的职能等。PHP提供了强有力的日子和岁月处理效果,通过时间和日期函数库,可以取得PHP程序在运维时所在服务器中的日期和时间,并能够对它们进行检讨和格式化,在分化格式之间张开改动。

10.2.1  UNIX时间戳

UNIX时间戳是保存日期和时间的一种紧密简洁的格局,是大好些个UNIX系统中保留当前几天期和时间的一种方法,也是在半数以上管理器语言中象征日期和时间的一种规范格式。以33位的子弹头表示Green威治规范时间,譬如,使用整数11230499325意味前段时间光阴的时光戳。UNIX时间戳是从一九六八年3月1日零点(UTC/放线菌壮观素T的深夜)开端起到当下时间所通过的秒数。壹玖陆捌年111月1日零点作为全体日期计算的功底,这几个日子通常称得上UNIX纪元。

因为UNIX时间戳是三个叁十五人的数字格式,所以特意适用于计算机管理,比方总计三个时间点之间距离的命局。其他,由于文化和地区的歧异,存在分歧的时刻格式,以及时区的标题。所以UNIX时间戳也是依附一个时区举办标准化,设计的一种通用格式,而且这种格式能够很轻便的改造为其余格式。

也因为UNIX时间戳是叁个31个人的整数表示的,所以在管理一九〇四年从前或2038年从此的事件,将会遇见有的标题。另外,在Windows下,由于岁月戳无法为负数,借使采纳PHP中提供的年月戳函数处理1968年在此以前的日期,就能时有爆发错误。要选用PHP代码具备可移植性,必需记住那点。

1.将日期和岁月变化成UNIX时间戳

在PHP中,如若急需将日期和岁月改换成UNIX时间戳,能够调用mktime()函数。该函数的原型如下所示:

int mktime ( [int hour [, int minute [, int
second [, int month [, int day [, int year ]]]]]] ) 

该函数中具备参数都以可选的,要是参数为空,暗中同意将这两天岁月转移成UNIX时间戳。那样,和一贯调用time()函数获取当前的UNIX时间戳功效雷同。参数也得以从右向左省略,任何省略的参数会被安装开支地日期和岁月的当下值。假诺只想转换日期,对切实的时刻不在乎,能够将前多少个转移时间的参数都安装为0。mktime()函数对于日期运算和验证非常有用,它能够自行改进越界的输入。如下所示:

    echo date("M-d-Y", mktime(0, 0, 0, 12, 36, 2007))."/n";
//日期超过31天,计算后输出Jan-05-2008      echo date("M-d-Y", mktime(0, 0, 0, 14, 1, 2008))."/n"; 
//月份超过12月,计算后输出Feb-01-2009      echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 2009))."/n";  
//没有问题的转变,输出结果 Jan-01-2009      echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 99))."/n";  
//会将99年转变为1999年, Jan-01-1999  ?> 

2.日期的乘除

在PHP中,总结四个日子之间相隔的长短,最轻巧易行的办法就是由此总计多少个UNIX时间戳之差来赢得。比如,在PHP脚本中摄取来自HTML表单顾客提交的出破壳日期,计算那几个顾客的岁数。如下所示:

    $year = 1981;                                 
//从表单中接收用户提交的出生日期中的年份      $month = 11;                                   
//从表单中接收用户提交的出生日期中的月份      $day = 05;                                      
//从表单中接收用户提交的出生日期中的天      $birthday = mktime (0, 0, 0, $month, $day, $year);     
//将出生日期转变为UNIX时间戳      $nowdate = time();                             
//调用time()函数获取当前时间的UNIX时间戳      $ageunix = $nowdate - $birthday;                  
//两个时间戳相减获取用户年龄的UNIX时间戳      $age = floor($ageunix / (60*60*24*365));          
//将UNIX时间戳除以一年的秒数获取用户年龄      echo "年龄:$age";                         
//输出用户的年龄,根据计算得到结果27  ?> 

在以上脚本中,调用mktime()函数将从顾客出破壳日期转换为UNIX时间戳,再调用time()函数获取当前时光的UNIX时间戳。因为这些日子的格式都以应用整数表示的,所以能够将它们相减。又将总计后获得的UNIX时间戳除以一年的秒数,将UNIX时间戳转换为以年衡量的单位。

版权注脚:本文为博主原创文章,未经博主允许不得转发。


def send_mail(to_list, sub, context): 

conn = MySQLdb.Connect(host=’localhost’, user=’root’, passwd=’root’,
db=’python’) 中加壹天性质:
 改为:
conn = MySQLdb.Connect(host=’localhost’, user=’root’, passwd=’root’,
db=’python’,charset=’utf8′) 
charset是要跟你数据库的编码同样,假使是数据库是gb2312
,则写charset=’gb2312′。

    ””’

 

    to_list: 发送给什么人

下边贴一下常用的函数:

    sub: 主题

下一场,这些延续对象也提供了对作业操作的支撑,标准的措施
commit() 提交
rollback() 回滚

    context: 内容

cursor用来试行命令的方式:
callproc(self, procname,
args):用来执行存款和储蓄进程,接收的参数为存款和储蓄进度名和参数列表,再次回到值为受影响的行数
execute(self, query,
args):实行单条sql语句,接收的参数为sql语句小编和动用的参数列表,再次回到值为受影响的行数
executemany(self, query,
args):实行单挑sql语句,不过再一次推行参数列表里的参数,重回值为受影响的行数
nextset(self):移动到下多少个结出集

   
send_mail(“[email protected]”,”sub”,”context”)

cursor用来接收重回值的不二诀窍:
fetchall(self):接收全体的回来结果行.
fetchmany(self,
size=None):接收size条回来结果行.借使size的值大于重回的结果行的数码,则会回去cursor.arraysize条数据.
fetchone(self):再次来到一条结果行.
scroll(self, value,
mode=’relative’):移动指针到某一行.假设mode=’relative’,则意味着从近期所在行活动value条,纵然mode=’absolute’,则意味从结果集的第一行移动value条.

    ”’ 

参照他事他说加以考察资料:

    me = mail_user + “<“+mail_user+”@”+mail_postfix+”>” 

MySQLdb‘s user guide

    msg = MIMEText(context) 

package MySQLdb

    msg[‘Subject’] = ‘python email test’ 

1 2 3 4 5 6 7 8 9 10 import MySQLdb try : conn = MySQLdb.connect(host =
localhost ,user = root ,pas…

    msg[‘From’] = sub

    msg[‘To’] = “;”.join(to_list) 

    try: 

        send_smtp = smtplib.SMTP() 

        send_smtp.connect(mail_host) 

        send_smtp.login(mail_user, mail_pass) 

        send_smtp.sendmail(me, to_list, msg.as_string()) 

        send_smtp.close() 

        print ‘success’

        return True 

    except (Exception, e): 

        print(str(e)) 

        print ‘false’

 

send_mail(mailto_list,”test mail”,”你好”)

导入 smtplib 和 MIMEText import smtplib from
email.mime.text import MIMEText # 定义发送列表
mailto_list=[[email protected],[email protected]]
# 设置服务器名称、顾客名…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图