Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JavaScript零填充日期_Javascript_Jquery - Fatal编程技术网

用JavaScript零填充日期

用JavaScript零填充日期,javascript,jquery,Javascript,Jquery,我想设置如下日期格式: 2013年5月2日 但目前,我的格式如下所示: 2013年5月2日 我如何对这种类型的日期进行零点填充,使日期中的日期类似于02,而不仅仅是2 以下是我正在使用的代码: var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); va

我想设置如下日期格式:

2013年5月2日

但目前,我的格式如下所示:

2013年5月2日

我如何对这种类型的日期进行零点填充,使日期中的日期类似于
02
,而不仅仅是
2


以下是我正在使用的代码:

var m_names = new Array("January", "February", "March", 
"April", "May", "June", "July", "August", "September", 
"October", "November", "December");

var d = new Date();
var curr_date = d.getDate();
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
alert( m_names[curr_month] + " " +curr_date + " " + curr_year);

您可以实现如下逻辑:

var d = new Date();
var curr_date = ("0" + d.getDate()).slice(-2);
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
console.log( m_names[curr_month] + " " +curr_date + " " + curr_year);

更新(2017年10月1日)

EcmaScript 2017或ES8引入了两种新的字符串原型方法: 和。我们可以在字符串之前或之后添加一些额外的空格或破折号(或任何其他字符)。我们可以在这里使用它,如:

var curr_date = d.getDate().toString().padStart(2,0);
(如果我们不需要将d.getDate()转换为字符串,这个语法可能会更短,因为padStart只对字符串有效)

演示:

var m_names=新数组(“一月”、“二月”、“三月”,
“四月”、“五月”、“六月”、“七月”、“八月”、“九月”,
“十月”、“十一月”、“十二月”);
var d=新日期('10/1/2017');
var curr_date=d.getDate().toString().padStart(2,0);
var curr_month=d.getMonth();
var curr_year=d.getFullYear();
var formatted_date=m_名称[当前月份]+“”+当前日期+“”+当前年份;
console.log(格式化的\u日期)解决方案
验证当前日期是否小于9。如果是,则添加
“0”+当前日期

因此,您可以像下面这样进行内联操作:

curr_date = (curr_date <= 9 ? "0" : "") + curr_date

请参阅更新。

这是您所能做的。看看日期是否大于9。如果是,则使用它,如果不是,则添加前导零

var curr_date = d.getDate();
curr_date = curr_date > 9 ? curr_date : "0" + curr_date;

在Chrome的当前开发版本(v28.0.1496.0)中,每个数字对象上都有一个
topaddeststring(n)
函数

Number(16).toPaddedString(4)
"0016"
不过,这是一个非常狭窄的浏览器目标,所以我怀疑它会对你有多大好处。它可能也是Chrome生产版的一部分,但我目前还没有这个版本。该函数不是EcmaScript 5.1的一部分,因此最好不要依赖它。但是,它不是
[本机代码]
,所以

Number(1).toPaddedString
function g(k,j){var i=this.toString(j||10);return"0".times(k-i.length)+i}
因此,要在任何浏览器中使用此功能,请包含以下代码行:

Number.prototype.toPaddedString = function g(k,j){var i=this.toString(j||10);return"0".times(k-i.length)+i};
然后可以填充您的月份,如下所示:

var curr_month = d.getMonth().toPaddedString(2);

coffeescript中的这个解决方案(包装到eco文件中)对我很有用

<% zero_pad = (x) -> if x < 10 then '0'+x else ''+x %>
<% d = new Date() %>
<% m = d.getFullYear() %>
<% m += "-"+zero_pad (d.getMonth()+1) %>
<% m += "-"+zero_pad d.getDate() %>
<input type="date" name="date" width="20" value="<%- m %>">
如果x<10,则“0”+x其他”+x%>

如果你想使用一个好的JS库,考虑一下矩();否则,您基本上必须自己应用左填充的0。仅为这个琐碎的任务使用库是荒谬的。我最喜欢的方法是不需要库或扩展原型。其他方法是使用
子字符串和
长度-2
,但这更简洁,而且速度极快。不优雅但深思熟虑。写这么简单的东西真是一篇好文章。@crush,我喜欢给出好的答案。我们正在一起学习。请添加一些解释。目前,您的答案被标记为“低质量”,可能会被删除。
Number.prototype.toPaddedString = function g(k,j){var i=this.toString(j||10);return"0".times(k-i.length)+i};
var curr_month = d.getMonth().toPaddedString(2);
<% zero_pad = (x) -> if x < 10 then '0'+x else ''+x %>
<% d = new Date() %>
<% m = d.getFullYear() %>
<% m += "-"+zero_pad (d.getMonth()+1) %>
<% m += "-"+zero_pad d.getDate() %>
<input type="date" name="date" width="20" value="<%- m %>">
$("#cuentapendiente").focusout(function(){
    if($(this).val()!=""){
        $(this).val(zeroFill($(this).get(0).value,6))
    }
}