首页 > 编程技术 > php

PHP中的日期时间处理利器实例

发布时间:2017-7-6 23:34

本篇文章为大家介绍了PHP中的日期时间处理利器实例(Carbon),很有一定的参考价值,有需要的朋友就来看一看吧。

 

Carbon介绍

Carbon是PHP中很人性化的时间日期处理插件,github拥有接近5000个 star。

github地址为:https://github.com/briannesbitt/Carbon

Carbon基本用法

 

 代码如下复制代码

//1、基本应用

$now= Carbon::now();         //2016-11-03 14:13:16

$today= Carbon::today();       //2016-11-03 00:00:00

$tomorrow= Carbon::tomorrow();    //2016-11-04 00:00:00

$yesterday= Carbon::yesterday();   //2016-11-02 00:00:00

 

//2、判断是否是某一天(2016-11-03(周四)举例)

$now= Carbon::now();

var_dump($now->isWeekend());//false 因为周四不是周末

var_dump($now->isWeekday());//true 因为周四是工作日

var_dump($now->isThursday());//true 因为今天是周四

$now->isToday();

$now->isTomorrow();

$now->isFuture();

$now->isPast();

 

//3、创建某一天的carbon对象并且进行加减计算

$date= Carbon::create(2016, 12, 25, 0, 0, 0);//2016-12-25 00:00:00

$next_year=$date->addYears(2);//2018-12-25 00:00:00

$past_year=$date->subYears(2);//2014-12-25 00:00:00

$next_month=$date->addMonths(2);//2017-02-25 00:00:00

$past_month=$date->subMonths(2);//2016-10-25 00:00:00

$next_day=$date->addDays(2);//2016-12-27 00:00:00

$past_day=$date->subDays(2);//2016-12-23 00:00:00

...更有addWeekdays()、addWeeks()、addHours()等方法

 

//4、将carbon对象转换成string类型

$dt= Carbon::create(1975, 12, 25, 14, 15, 16);

echo$dt->toDateString();            // 1975-12-25

echo$dt->toFormattedDateString();        // Dec 25, 1975

echo$dt->toTimeString();            // 14:15:16

echo$dt->toDateTimeString();          // 1975-12-25 14:15:16

echo$dt->toDayDateTimeString();         // Thu, Dec 25, 1975 2:15 PM

 

上面介绍的是一些基本的Carbon使用。Carbon最大的特点就是灵活、人性化。

以上就是本文的全部内容,希望对大家的学习有所帮助。

原文链接:https://segmentfault.com/a/1190000007370334

 

 

本篇文章为大家介绍了PHP利用ffmpeg提取视频中音频与视频画面的相关资料,很有参考价值,一起来看一看吧。

 

前言

FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。

FFmpeg的用户有Google,Facebook,Youtube,优酷,爱奇艺,土豆等。

组成

       1、libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能,包含demuxers和muxer库;

       2、libavcodec:用于各种类型声音/图像编解码;

       3、libavutil:包含一些公共的工具函数;

       4、libswscale:用于视频场景比例缩放、色彩映射转换;

       5、libpostproc:用于后期效果处理;

       6、ffmpeg:是一个命令行工具,用来对视频文件转换格式,也支持对电视卡实时编码;

       7、ffsever:是一个HTTP多媒体实时广播流服务器,支持时光平移;

       8、ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;

提取视频中音频与视频画面

想要提取视频中的音频信息,首选的技术是ffmpeg,网上的绝大多数ffmpeg使用教程都是:

比如你的文件是 test.mp4

分离视频出来:ffmpeg -i test.mp4 -vcodec copy -an 视频流.avi

分离音频出来:ffmpeg -i test.mp4 -acodec copy -vn 音频流.mp3

用这样的方法,提取视频是没有问题的。但在提取音频时,我遇到了以下错误:

 代码如下复制代码
Invalid  audio stream. Exactly one MP3 audio stream is required. could not write  header for output file #0 (incorrect codec parameters ) invalid  argument

其实,简单地提取音视频并不需要这么复杂,只要执行以下两行就行了:

分离视频出来:ffmpeg -i test.mp4 视频流.avi

分离音频出来:ffmpeg -i test.mp4 音频流.mp3

本篇文章为大家介绍了,在laravel 5.1下php artisan migrate的使用注意事项,很有一定的参考价值的,一起来看一看吧。

PHP artisan migrate命令是laravel十分重要的问题,但在使用时需要注意几个情况:

(1)在migration文件夹下创建一张新的表,要使用php artisan make:migration语句

php artisan已经拥有强大的功能,就不要自己新建一个表

(2)composer dump-autoload的使用

composer   dump-autoload是用来更新vendor/composer/autoload_classmap.php文件的,这个文件有许多配置,使用php  artisan命令时就是事先调用这个文件。在新添加一张表时,先执行这个命令,在使用migrate。在删除一张表示,先使用migrate:rollback,再使用composer,在删除文件。

执行这条语句将修改laravel框架内vendor/composer/文件夹下的所有文件

(3)安装composer

有可能使用composer时显示命令不存在,这时就要安装composer。

 

 代码如下复制代码

php -r"readfile('https://getcomposer.org/installer');"> composer-setup.php

 

php composer-setup.php

 

php -r"unlink('composer-setup.php');"

 

执行第一条命令下载下来的 composer-setup.php 脚本将简单的检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的composer.phar    文件到当前目录。

上述 3 条命令的作用依次是:

全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。

Mac 或 Linux 系统:打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到/usr/local/bin/ 目录下面:

 代码如下复制代码
sudomvcomposer.phar/usr/local/bin/composer
选择法也算是入门的一种排序算法,它的方法十分巧妙,下面我们就来为大家介绍一下Python实现选择排序的方法,有需要的可以来参考一下。

选择排序:

选择排序(Selection sort)是一种简单直观的 排序算法  。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。

Python 实现:

 

 代码如下复制代码

# selection_sort.py

defselection_sort(arr):

  count=len(arr)

  foriinrange(count-1): # 交换 n-1 次

    min=i

    # 找最小数

    forjinrange(i, count):

      ifarr[min] > arr[j]:

        min=j

    arr[min], arr[i]=arr[i], arr[min] # 交换

  returnarr

 

my_list=[6,23,2,54,12,6,8,100]

print(selection_sort(my_list))

 

原文链接:http://www.cnblogs.com/tingshuo123/p/6935445.html

标签:[!--infotagslink--]

您可能感兴趣的文章: