代码如下
<php$date_str = "明天下午两点半";
$date_str = "后天早上八点三十一";
echo $date_str" ";
date_default_timezone_set("PRC");
$time = strtotime(date("Y-m-d"));
//数字中文对照
$num_lang=array('零', '一', '二|两', '三', '四', '五', '六', '七', '八', '九', 30=>'半');
//时间段中文言对照
$date_lang=array(
array("下午|晚上|深夜", 360012),
array("凌晨|上午|早晨|早上", 0),
array("大后天", 3600243),
array("大前天", -3600243),
array("后天", 3600242),
array("前天", -3600242),
array("明天", 360024),
array("昨天", -360024),
);
//累加移动的时间差
$tmp_str = $date_str;
foreach ($date_lang as $date ) {
$lang_str = $date[0];
$lang_arr = explode("|", $lang_str);
$period = $date[1];
foreach ($lang_arr as $lang ) {
if (strpos($tmp_str, $lang)!==false) {
$time += $period;
$tmp_str = str_replace($lang, "", $tmp_str);
}
}
}
//中文替换成数字
foreach ($num_lang as $num => $lang_str) {
$lang_arr =explode("|", $lang_str);
foreach ($lang_arr as $lang) {
$tmp_str = str_replace($lang, $num, $tmp_str);
}
}
$tmp_str = preg_replace('/(\d+)十(\d)/', "$1$2",$tmp_str);
$tmp_str = preg_replace('/(\d+)十/', "\${1}0", $tmp_str);
$tmp_str = preg_replace('/十(\d)/', "1$1", $tmp_str);
//捕获时分
preg_match('/(\d+)点(\d)/', $tmp_str, $hur_min);
$hour = (int) $hur_min[1];
$min = (int) $hur_min[2];
$time += $hour3600+($min60);
//输出结果
print_r(date("Y-m-d H:i", $time));
>
public function index(){
$data=time();
$format='星期';
$week = date( "D",$data);
switch($week){
case "Mon":$current = $format"一";break;
case "Tue":$current = $format"二";break;
case "Wed":$current = $format"三";break;
case "Thu":$current = $format"四";break;
case "Fri":$current = $format"五";break;
case "Sat":$current = $format"六";break;
case "Sun":$current = $format"日";break;
}
echo '今天是:'$current;echo "
";//获取当前时间是上午还是下午
// 小写g、h表示12小时制,大写G、H表示24小时制。
echo "现在是"date("H",$data)'点'"";
echo "现在是"date("G",$data)'点'"";
if(date("H",$data)<=12){echo "上午";}else{echo "下午";}// return $current;}
实现sql代码如下:
1) select from 表名 where 时间间字段 between date() and cdate(format(date(),'yyyy-mm-dd') & ' 23:59:59');
2) select from 表名 where 期间字段 between date() and now();
你好,
两个时间戳比较简单,new两个当前date对象,将时、分,分别设置为零点和23:59分,再gettime就可以了。只接代码:
var zero = new date();
var eleven = new date();
zerosethours(0);
zerosetminutes(0);
zerosetseconds(0);
elevensethours(23);
elevensetminutes(59);
elevensetseconds(0);
consolelog('今天零点:' + zerogettime());
consolelog('23:59:' + elevengettime());希望解决了你的问题,如有疑问可追问!
Date类。
方法1、获取当天的年月日,然后自己算差多少天。难点在于得考虑每个月多少天。
方法2、获取当天凌晨12点的毫秒数(获取当天的年月日然后用setTime方法),以及目标那天凌晨12点的毫秒数(setTime方法),相减,除以一天的毫秒数2460601000,就是相差的天数。难点在于Date类的熟练应用。
Date类的使用可参考:
>
1、首先在电脑上创建一个indexphp文件,编辑indexphp。
2、然后输入获取当天零点的时间戳,输入代码$today = strtotime(date("Y-m-d"),time());$time = strtotime($today);//获取到echo $time"<br />";//输出。
3、获取当天24点的时间戳$todayEnd = $today+606024;//家一天的时间echo $time = strtotime($todayEnd)"<br />";//输出。
4、获取前一天时间echo date("Y-m-d H:i:s",strtotime("-1 days"));。
5、以上即时间戳和前一天时间的获取。主要是对date()和strtotime()函数的灵活使用,就可以了。
以上就是关于将自然语言的日期用PHP解析全部的内容,包括:将自然语言的日期用PHP解析、PHP获取当天或某个日期是星期几以及当前时间是几点,上午还是下午、access 应该怎样获取当天0点,到23点59分59秒之间 表中所有符合这个时间段的记录数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)