精华内容
下载资源
问答
  • 年月日的分隔符可以是
    千次阅读
    2021-03-22 20:25:53

    php日期转时间戳php时间戳与年月日格式日期互相转换

    php时间戳,在开发的时候还是用得比较多,在MYSQL数据库中他是以字符串的形式存储的,而在本文中将介绍如何把php时间戳转成普通日期,或将普通日期转换成时间戳

    php时间戳显示的样式为:1285724523

    输出php时间戳,很简单: echo time();,这样就直接输出时间载了,而我们普通的日期输出呢

    普通日期输出:2010-09-29,这样用PHP输出是:echo

    date('Y-m-d');,当然中间的间隔符“-”是自己可用任意字符间隔的

    还有带时间的日期输出:2010-09-29 01:46:23 用php输出是:echo date('Y-m-d

    H:i:s');

    了解他们的显示形式及代码后,现在来看看他们是通过什么来互转换的

    先说把PHP时间戳转成普通日期形式

    $date=date('Y-m-d',"1285724523");

    echo $date;

    以上两句就是把时间载转换成普通日期形式,运行结果为:2010-09-29,把后面的时分秒给省略了。

    那如果把以上的2010-09-29转成时间戳呢,又是如何实现呢,请看代码:

    $date=date('Y-m-d',"1285724523");

    $temp=explode("-",$date);

    echo mktime(0,0,0,$temp[1],$temp[2],$temp[0]);

    第二行有用到函数explode,这个函数大家可以牢记,因为会经常用到,就是把字符串转成数组,而分隔符就自己指定了,我们这里是用“-”.接下来用mktime函数把年月日转成时间戳形式,这样运行后输出是1285718400,大家会问和1285724523对不上,这样结果不对啊,这就错了,因为1285724523这个是带时分秒的,所以对不上,但结果正确的。

    那么不带时分秒的日期与php时间戳转换大家应该也全明白了吧,接下来呶呶博客进一步分析带时分秒的日期形式与时间戳的转换.

    先说把PHP时间戳转成普通带时分秒的日期形式

    $date=date('Y-m-d H:i:s',"1285724523");

    echo $date;

    很简单吧,和上面的对照只加了H:i:s格式,这样运行结果就是:2010-09-29 01:42:03这样了

    最后要说明的就是将时间戳转成带时分秒的日期形式,会稍复杂点,因为要通过三个explode函数切割字符字串,大家看过mktime()

    函数说明就知道吧,我上面指定的时分秒是为0,现在加上。

    $date=date('Y-m-d H:i:s',"1285724523");

    echo $date."

    ";

    $temp=explode(" ",$date);

    $temp1=explode("-",$temp[0]);

    $temp2=explode(":",$temp[1]);

    echo mktime($temp2[0],$temp2[1],$temp2[2],$temp1[1],$te

    mp1[2],$temp1[0]);

    运行结果,首先第一行是显示2010-09-29 01:42:03 第二行是显示1285724523

    ,数据完全相同了,好,博客对php时间戳与日期的转换研究就到这里了

    更多相关内容
  • 如何给数字添加分隔符

    千次阅读 2021-03-10 04:58:13
    在会计行业,这个专门术语叫"千位分隔符"。每三位一隔是西方人的习惯,这样做的目的是便于读数。而且只对整数作千位分隔,小数部分不作分隔。(不过,我觉得这种千位分隔符并不符合中国人的习惯,这样做反而不便于读...

    编程时,我们有时可能需要对数字每3位一隔地添加逗号。在会计行业,这个专门术语叫"千位分隔符"。

    每三位一隔是西方人的习惯,这样做的目的是便于读数。而且只对整数作千位分隔,小数部分不作分隔。

    (不过,我觉得这种千位分隔符并不符合中国人的习惯,这样做反而不便于读数。)

    由于小数部分是不作分隔的,所以,简单起见,我们在这里只讨论数据是整数的情况。

    言归正传,怎么实现对数字每3位一隔地添加逗号呢?

    ① Java本身提供了一些函数可供使用,比如下列方式:

    public static String formatNumber1( String num ){

    num = num.replaceAll(",", "");// 去掉所有逗号 java.text.DecimalFormat df = new java.text.DecimalFormat("##,###,###");

    return df.format( Double.parseDouble( num ) );

    }

    当然,还有其他的函数可供使用,这里就不举例了。

    这么做有个缺点,当数字很大时,转换就会出错了。

    比如,1234567890123456789 会变成1,234,567,890,123,456,770

    这样的数据显然不是我们想要的。

    ② 此外,一些数据库(比如Oracle)也提供了数字的添加分隔符的方法。

    SELECT

    TO_CHAR( TO_NUMBER('12345678901234567890'), 'FM999,999,999,999,999,999,999' )

    AS JIN_E

    FROM

    DUAL

    这种方法在从数据库中取数据直接显示在页面上时很有用,因为不需要再通过Java循环来添加分隔符了。

    但,有个地方要注意:

    在程序中,拼SQL语句时,必须要保证FM999,999,999,999,999,999,999这个串中

    的9的个数要多余传入的变量的值的数字的个数。否则就得不到正确的值,得到的是一串

    #############。

    ③ 还是回到Java,在①的方法中,已经提到,这种方法只在数字不是特别大时有效,

    当数字很大时,将返回一个不正确的数据。

    那么,如何对超长数据添加分隔符呢?

    一般,很容易想到用字符串循环的方式来添加,比如象下面这样的代码:

    public static String formatNumber2( String num ){

    num = num.replaceAll(",", ""); // 去掉所有逗号 StringBuffer ret = new StringBuffer();

    for( int i = num.length()-1; i≥0; i-- ){

    ret.append( num.charAt(i) );

    if( (num.length()-i)%3==0 ){

    ret.append(",");

    }

    }

    return ret.reverse().toString();

    }

    采用这种方法,就不怕超长数据了。

    ④ 除了上述方法外,其实还有其他方法,比如采用正则表达式。

    下面我就介绍几个用正则表达式来给超长数据添加分隔符的办法。

    实现的代码如下:

    public static String formatNumber3( String iniNum, int split ){ // 去掉所有逗号 String retNum = Pattern.compile(",").matcher( iniNum ).replaceAll("");

    retNum += ","; // 末尾加个逗号,作為下列正則表達式的替換的基準 // 查找这样的串:连续split位数字的串,其左边有个数字,其右边有个逗号 Pattern p = Pattern.compile("(?〈=\\d)(\\d{" + split + "})(?=,)");

    for( Matcher m=p.matcher( retNum ); m.find(); ){ // 把这样的串替换为左边加逗号的串 retNum = m.replaceFirst(",$1");// 括号会记为变量,依次为$1,$2… m = p.matcher( retNum );// 替换后的串再次进行规则匹配,直到结束。 }

    return Pattern.compile(",$").matcher( retNum ).replaceFirst("");

    }

    正则表达式是,简单地说,就是一种用来描述字符串文本的查找和替换的规则。

    可以理解为是一种字符串的查找和替换的工具。

    正则表达式被很多高级语言所支持,如Perl, Java, C#等, 甚至包括JavaScript。

    不过,由于各种语言对正则表达式的理解及实现上有所差异,正则表达式也呈现各种流派或方言。

    使用时,具体细节上会不相同,不一定能互相套用,这点要注意。

    正则表达式具有"易写难读"的特点,可能不太好理解,所以,上述代码,我添加了很多注释。

    上述数字串的匹配规则中,用到了"肯定逆序環視"和"肯定順序環視"。

    环视的括号不会被记录成象$1这样的变量,它只是记录一个"位置",所以不会消耗掉串中的字符。

    (?〈=…)的形式為肯定逆序環視,意思是: 某个位置,其左側符合…的条件

    (?=...)的形式為肯定順序環視,意思是: 某个位置,其右側符合…的条件

    此外,还有否定的环视。

    (?〈!…)的形式為否定逆序環視,意思是: 某个位置,其左側不符合…的条件

    (?!...)的形式為否定順序環視,意思是: 某个位置,其右側不符合…的条件

    ( 可能由于翻译的不同,有些地方,采用正向零宽断言,负向零宽断言之类的术语,其实是一个意思。)

    正則表達式理论上是支持从右向左的查找和替换的,但这还得靠宿主语言来实现。

    但是,在Java中,似乎没实现,所以,在上述代码中,只能用循环来做了。

    上述代码是前几天写的,还不够简洁。

    今天在码这篇文章的时候,突然想到,可以把规则再适当修正一下,将肯定顺序环视改成否定顺序环视,

    就不需要先在串尾添加逗号,然后在函数返回之前再去除逗号了。

    立刻修改代码试了一下,果然可以。 ^_^

    修改后的代码如下:

    public static String formatNumber4( String iniNum, int split ){

    String retNum = iniNum.replaceAll(",", ""); // 去掉所有的逗号 // 查找这样的串:连续split位数字的串,其左側有个数字,其右側不是数字 Pattern p = Pattern.compile( "(?〈=\\d)(\\d{"+split+"})(?!\\d)" );

    for( Matcher m=p.matcher( retNum ); m.find(); ){

    retNum = m.replaceFirst(",$1");

    m = p.matcher( retNum );

    }

    return retNum;

    }

    现在,只剩下一个小小的遗憾,就是那个循环了。

    不过,也可能Java中有从右向左查找的参数,只是我不知道而已,有谁知道的,请告诉我,不胜感谢!^_^

    ⑤ 尽管Java看起来似乎不支持正则表达式的从右向左的查找和替换。

    那么碰到这种情况,循环是不是就一定不可避免了呢。

    其实,如果换个思路,我们自己把串给倒过来,就不需要那个循环了,用正则表达式一下子就搞定了。

    实现的代码如下:

    public static String formatNumber5( String iniNum, int split ){

    StringBuffer tmp = new StringBuffer().append( iniNum.replaceAll(",", "") )

    .reverse();// ① 去掉所有逗号,并把串倒过来。 // ② 替换这样的串:连续split位数字的串,其右边还有个数字,在串的右边添加逗号 String retNum = Pattern.compile( "(\\d{" + split + "})(?=\\d)" )

    .matcher( tmp.toString() ).replaceAll("$1,"); // ③ 替换完后,再把串倒回去返回 return new StringBuffer().append( retNum ).reverse().toString();

    }

    哈哈,没有循环,三步搞定!

    ⑥ 上面已经提到,javaScript也提供了对正則表達式的支持。

    有点遗憾的是,javaScript中没有提供正則表達式的环视功能。

    不过没关系,不用环视,我们一样可以实现给数字添加分隔符的。

    下面给出javaScript的代码。( 可以参照比对④中的Java代码。)

    〈html〉 〈head〉 function formatNumber6( num ){

    if( !num.match(/^([0-9]|-)[0-9,]*$/) ){ // 数字或负号开头,后续数字或逗号的文字串 return num; // 数字不匹配 }

    num = num.replace(/,/g,''); // 去掉所有的逗号 num += ","; // 末尾加一个逗号,作為下列正則表達式的替換的基準 for( var re = /(\d)(\d{3}\,)/; re.test( num ); ){

    num = num.replace( re, "$1\,$2" );

    }

    return num.substring( 0, num.length-1 );

    }

    function startup(){

    alert( formatNumber6("-1234567890,1234567890,1234567890") );

    }

    window.onload = startup; 〈/head〉 〈/html〉

    没有环视功能的时候,只能靠在串末人为地先加上一个逗号来实现了。

    还有一个小细节,在写Java函数的时候,我用了两个参数,第二个参数是用来确认是多少位进行分隔的。

    传3就3位一分隔,传4就4位一分隔,这样就更灵活了。

    也许会计专业人士经过训练后,已经适应了这种西方人喜欢的千位分隔符。不过我是不习惯的。

    我觉得,对中国人而言,更适合的应该是万位分隔符。

    展开全文
  • 今天碰到了一个问题 19980912如何在Excel里呈现出 1998-09-12?...1.准备好需要处理的年月日 2.选中需要转化处理的年月日 3.右键设置单元格格式 4.点击自定义类型 5.设置需要的自定义格式类型 6.看效果 ...

    今天碰到了一个问题 19980912如何在Excel里呈现出 1998-09-12?
    讲真心话?怎么用代码实现我都想好了!?Excel毕竟不是自己写的.

    经过不过的摸索,终于找到解决方案。上干货!

    1.准备好需要处理的年月日
    在这里插入图片描述
    2.选中需要转化处理的年月日
    在这里插入图片描述

    3.右键设置单元格格式

    在这里插入图片描述
    4.点击自定义类型
    在这里插入图片描述
    5.设置需要的自定义格式类型
    在这里插入图片描述
    6.看效果
    在这里插入图片描述

    展开全文
  • 代码解析: formatDateTime():传入Date对象,获取年月日、时分秒,返回处理后的日期时间字符串; today:调用时不传参,即获取此时此刻的日期字符串; tomorrow:参数为明天(此时此刻)的日期字符串; t = new ...

    获取当前时间,格式为:2020/07/04 17:00(此时此刻)

    获取指定时间,格式为:2020/07/05 17:00(一天后,即明天的此时此刻)

    一、实现思路

    1. 创建一个方法,将传入的日期对象处理后直接返回,先贴上代码:

    // 格式化 日期时间
    function formatDateTime(date = new Date()) { //不传date则默认当前时间
      let year = date.getFullYear();
      let month = date.getMonth() + 1;
      let day = date.getDate();
      let hour = date.getHours();
      let minute = date.getMinutes();
      let second = date.getSeconds();
      // 不足两位,添“0”
      month = month < 10 ? "0" + month: month;
      day = day < 10 ? "0" + day: day;
      hour = hour < 10 ? "0" + hour: hour;
      minute = minute < 10 ? "0" + minute: minute;
      second = second < 10 ? "0" + second: second;
      return year + "/" + month + "/" + day + " " + hour + ":" + minute + ":" + second;
    }
    
    // 此时此刻
    let today = formatDateTime();
    console.log("此时此刻:", today);
    
    // 明天的此时此刻
    let t = new Date().getTime() + 60 * 60 * 24 * 1000; //24小时后的时间戳
    let tomorrow = formatDateTime(new Date(t));
    console.log("明天的此时此刻:", tomorrow);

    2. 代码解析:

    formatDateTime():传入Date对象,获取年月日、时分秒,返回处理后的日期时间字符串;

    today:调用时不传参,即获取此时此刻的日期字符串;

    tomorrow:参数为明天(此时此刻)的日期字符串;

    t = new Date().getTime() + 60 * 60 * 24 * 1000:当前时间戳 + 24小时的毫秒值 = 明天(此时此刻)的时间戳,且new Date(t)将时间戳转为Date对象,最终得到明天(此时此刻)的日期字符串。

    控制台输出:

    此时此刻: 2020/07/04 17:00
    明天的此时此刻: 2020/07/05 17:00

    二、代码优化

    1. 基于以上思路,再加入多个参数,实现自定义分隔符等,同样先贴出代码:

    // 格式化 日期时间
    function formatDateTime(date = new Date(), p1 = "-", p2 = ":") {
      let year = date.getFullYear();
      let month = date.getMonth() + 1;
      let day = date.getDate();
      let hour = date.getHours();
      let minute = date.getMinutes();
      let second = date.getSeconds();
      return [year, month, day].map(formatNumber).join(p1) + " " + [hour, minute, second].map(formatNumber).join(p2);
    }
    
    // 格式化 日期数字
    function formatNumber(n) {
      n = n.toString();
      return n[1] ? n: "0" + n;
    }
    
    // 此时此刻
    let today = formatDateTime(undefined, "/");
    console.log("此时此刻:", today);
    
    // 明天的此时此刻
    let t = new Date().getTime() + 60 * 60 * 24 * 1000; //24小时后的时间戳
    let tomorrow = formatDateTime(new Date(t), "/");
    console.log("明天的此时此刻:", tomorrow);

    2. 代码解析:

    formatDateTime():加入分隔符参数,不传则使用默认值;

    formatNumber():数字不足两位,在前面补“0”并返回;

    today:传入undefined,判断不存在,即使用默认值;

    tomorrow:传入自定义的日期对象。

    控制台输出:

    此时此刻: 2020/07/04 17:00
    明天的此时此刻: 2020/07/05 17:00

    三、更多

    或者这样写:

    // 格式化 日期时间
    var formatDateTime = (date = new Date(), p1 = "-", p2 = ":") =>{
      let year = date.getFullYear();
      let month = date.getMonth() + 1;
      let day = date.getDate();
      let hour = date.getHours();
      let minute = date.getMinutes();
      let second = date.getSeconds();
      return [year, month, day].map(formatNumber).join(p1) + " " + [hour, minute, second].map(formatNumber).join(p2);
    };
    
    // 格式化 日期数字
    var formatNumber = (n) =>{
      n = n.toString();
      return n[1] ? n: "0" + n;
    };

     文件下载(CSDN)

    展开全文
  • 使用python中的pandas将日期分割成单独的年月日时分列 读取数据: import datetime from datetime import datetime import warnings warnings.filterwarnings(action='ignore') from matplotlib.pylab import style ...
  • 您只需要一点点额外的代码就可以识别日期格式的类型。例如,假设您的数据是以下格式-data = [("2008-05-01",1),("2018-01-01",2),("03/14/2017",3),("01/01/2018",4)]df = spark.createDataFrame(data,schema=['date...
  • 小白的诡异写法(你没见过的船新版本),勿喷! #include&amp;lt;iostream&amp;gt; using namespace std; int main() { int a,b,d=0,n=28; char c; cin&amp;gt;&amp;gt;a&...&
  • 一、IPO模型一个程序,按照功能可以划分为三个部分:输入部分、处理部分和输出部分本讲我们学习基本输入与输出,通过输入函数获取数据(数值型和字符串),通过输出函数将处理结果以某种方式呈现。处理部分会涉及到...
  • printf("输入年月日\n"); scanf("%d%d%d", &year, &month, &day); //printf("输入天数\n"); //scanf("%d",&n); n = 1; if (year || month || month>12 || day || n ) { printf("输入数据错误\n"); return 1; } ...
  • 从上面两个例子中,大家也可以发现了,我输入的值不管是什么,类型都是字符串。type是python内置的函数之一,作用是查看数据的类型。比如将字符串转换成数字类型前面我们在将字符串转化为整数用的是i...
  • 我们可以用它来做些操作, 我这里有两个案例: 1.实现快速查找班级 请看图: 具体操作: 输入:=MID(A4,4,1)&“班” 可以看到选中的是第A列第四行,开始位置是4,个数是1 按住回车出现的就是3班了 当我们...
  • golang 获取当前年月日

    千次阅读 2021-01-09 14:08:26
    分隔符 PHP Y m d H i s 自定义 Golang 2006 01 02 15 04 05 自定义 即 PHP 中的 Y-m-d H:i:s 等价于 Golang 中的 2006-01-02 15:04:05 二、代码 package main import ( "fmt" "time" ) func main() {...
  • 身份证号是18位,前6位是所属省市区、7至14位是出生年月日、其中第17位表示性别,奇数为男性,偶数女性 身份证号 340204198107181456 340204199504172986 342623199106151416 1.提取出生年月日 函数: ...
  • } }) Vue.filter('timestampToTime' ,function(timestamp) { // 计算年月日时分的函数 var date = new Date(timestamp) var Y = date.getFullYear() + '-' var M = (date.getMonth() + 1) + '-' var D = date....
  • vue中利用js截取时间的年月日

    千次阅读 2019-12-13 17:22:54
    例如: let time =‘2019-10-11 15:17:...年月日:let ti = time.split(’ '); 月: var timearr = time.replace(" ", ":").replace(/\:/g, "-").split("-"); var timestr = ""+ Number(timearr[1])+ "月" + t...
  • * rs: [2018-06, 2018-07, 2018-08] * * ----------------------- sliceUpDateRange("2018-06-30", "2018-07-02"); * rs: [2018-06-30, 2018-07-01, 2018-07-02] * * * @param startDate 起始日期 * @param ...
  • /*** 日期分隔符,处理特殊字符**@paramsplitter*@return*/private static String dealWithSplitter(charsplitter) {String strSplitter=String.valueOf(splitter);String[] str= {".", "+", "*", "|", "?"};if...
  • java如何获取当前时间 年月日 时分秒 并且转成java.sql.Date格式。 long l = System.currentTimeMillis(); //new日期对 Date date = new Date(l); //转换提日期输出格式 SimpleDateFormat dateFormat = ...
  • linux命令 date只输出年月日 awk

    千次阅读 2022-01-18 16:35:59
    linux date命令只输出年月日
  • js获取当前年月日

    2021-05-26 10:07:04
    var getYearMonth = function () { // 获取当前日期 var date = new Date(); // 获取当前月份 ... // 添加分隔符“-” var seperator = "/"; // 对月份进行处理,1-9月在前面添加一个“0”
  • js获取当前年月日星期时间,格式(YYYY-mm-dd、YYYY年mm月dd、YYYY年mm月dd 星期x h:m:s)
  • 输入只有一行,出生日期,包括年月日年月日之间的数字没有分隔符。 输出描述: 三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。 示例1 输入: ...
  • 用new Date()拿到时间后,希望月份跟天小于10,则在前面补上0,之前我们会用到它里面自带的api去拿到年月,再去判断是否小于10,这样的做法比较麻烦,但是toLocaleString()则会让这个格式变得很简单 以前 let time1 ...
  • 2021年06月182021年06月18只想选择年月日,jquery-weui建议使用日历但实际的需求如果选择生日等等,日历选择的用户体验很不好,所以进行源码修改,看下面颜色标注。下面是HTML部分下面是JS部分$("#birth")....
  • } }/// 分隔符 classPickerDelimiter {finalWidget child;final intcolumn; PickerDelimiter({this.child, this.column = 1}) : assert(child != null); }/// picker data list item class PickerItem{/// 显示内容...
  • javascript提供的日期格式化太简单,一般应用都需要自己实现格式化方法....示例中只支持了年月日时分秒毫秒的元素,如果需要显示星期则可以在values中添加w = getDay(),将正则表达式修改为y+|M+|d+|H+|m+|s+|S+|w
  • 在输入框输入手机号码,例如13800138000,变成3-4-4的格式 当输入138后面的0的时候,自动添加一个"-",变成138-0的格式; 当输入到138-0013后面的8的时候,自动变成138-0013-8000的格式。 ...
  • sql中的日期处理

    2021-02-01 23:08:37
    / 在 DateSeparator 中定义的默认日期分隔符。 % c 其中 c 是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。 c 其中 c 是任意字符。照原义显示字符。若要显示反斜杠...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,681
精华内容 4,672
热门标签
关键字:

年月日的分隔符可以是