如何在 JavaScript 中获取当前日期?

问:

想要改进这篇文章?提供这个问题的详细答案,包括引文和解释为什么你的答案是正确的。没有足够细节的答案可能会被编辑或删除。

如何在 JavaScript 中获取当前日期?

答1:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

使用 new Date() 生成包含当前日期和时间的新 Date 对象。

var 今天 = 新日期(); var dd = String(today.getDate()).padStart(2, ‘0’); var mm = String(today.getMonth() + 1).padStart(2, ‘0’); //一月是0! var yyyy = today.getFullYear();今天 = mm + ‘/’ + dd + ‘/’ + yyyy; document.write(今天);

这将以 mm/dd/yyyy 格式为您提供今天的日期。

只需将 today = mm +‘/’+ dd +‘/’+ yyyy; 更改为您希望的任何格式。

感谢您的代码.. 但我仍然不明白,是 if(dd<10){dd='0'+dd} ... 为什么 < 10?从我从代码中了解到的是,如果一天的字符小于 2,只需在一天的前面添加一个前面的 0 .. 但为什么是 10?

@imin:因为少于 2 个字符意味着 1 个字符......而 10(1 到 9)以下的所有内容都是 1 个字符,所以我们将有 01、02、...、09

@MounaCheikhna - 我们怎么会在 999 年?

如果您不在北美,请交换月份和日期。

新的 Date.prototype.toLocaleDateString() 方法是一种更灵活的解决方案。它是自 ECMAScript 5.1 以来 JavaScript 的一部分,并且得到了常青浏览器的良好支持。 MDN: toLocaleDateString()

答2:

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

var utc = new Date().toJSON().slice(0,10).replace(/-/g,‘/’); document.write(UTC);

如果您要重复使用 utc 变量(例如 new Date(utc)),请使用 replace 选项,因为 Firefox 和 Safari 无法识别带有破折号的日期。

我不这么认为:) 看起来很简单!

toJSON() 以 UTC 日期时间返回

它返回一个 JSON 日期时间。 toUTCString() 作为 UTC 日期时间返回。

它不考虑 TimezoneOffset。在我测试的时候,我正在寻找“现在”,而我得到了“昨天”。 stackoverflow.com/questions/13646446/…

完美的。这是我在这里看到的最干净的方法。在 MomentJS 中适用于“今天,而不是现在”moment( new Date().toJSON().slice(0, 10) )

答3:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

最短的可能。

要获得像“2018-08-03”这样的格式:

让今天 = new Date().toISOString().slice(0, 10) console.log(today)

要获得像“8/3/2018”这样的格式:

让今天 = new Date().toLocaleDateString() console.log(today)

此外,您可以将 locale 作为参数传递,例如 toLocaleDateString(“sr”) 等。

由于时区偏移,这仍然失败。

你的第二个答案是最好的。

请注意,这将返回 UTC+0 的日期,而不是本地日期。

答4:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

已更新!,向下滚动

如果您想要对最终用户来说简单漂亮的东西… Also, fixed a small suffix issue in the first version below. Now properly returns suffix.

var objToday = new Date(), weekday = new Array(‘Sunday’, ‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’), dayOfWeek = weekday[objToday.getDay( )], domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + “”).charAt(0)))) return “th”; a = parseInt((a + “”).charAt(1));返回 1 == 一个? “st”:2 == 一个? “nd”:3 == 一个? “rd” : “th” }(), dayOfMonth = today + (objToday.getDate() < 10) ? ‘0’ + objToday.getDate() + domEnder : objToday.getDate() + domEnder, 月 = new Array(‘一月’, ‘二月’, ‘三月’, ‘四月’, ‘五月’, ‘六月’, ‘七月’,‘八月’,‘九月’,‘十月’,‘十一月’,‘十二月’),curMonth = 月[objToday.getMonth()],curYear = objToday.getFullYear(),curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? “0” + objToday.getHours() : objToday.getHours()), curMinute = objToday.getMinutes() < 10 ? “0” + objToday.getMinutes() : objToday.getMinutes(), curSeconds = objToday.getSeconds() < 10 ? “0” + objToday.getSeconds() : objToday.getSeconds(), curMeridiem = objToday.getHours() > 12 ? “下午”:“上午”; var today = curHour + “:” + curMinute + “.” + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear; document.getElementsByTagName(‘h1’)[0].textContent = 今天;

UBBER 更新经过长时间的拖延,我终于在 GitHubbed 上更新了这个,并用我自己使用的最终解决方案进行了更新。它甚至在最后一刻进行了一些编辑以使其更甜美!如果您正在寻找旧的 jsFiddle,请查看此内容。

此更新有 2 种风格,虽然没有我上面的原始答案那么小,但仍然相对较小。如果你想要非常小,那就去吧。 另请注意:这仍然没有 moment.js 臃肿。虽然 moment.js 很好,但 imo,它有太多世俗的方法,需要像学习语言一样学习 moment。我这里使用与 PHP: date 相同的通用格式。

快速链接

Date.format.min.js 5.08 KB

dateFormat.min.js 4.16 KB

风味 1 new Date().format(String) 我个人的最爱。我知道禁忌,但在日期对象上效果很好。请注意您对日期对象可能拥有的任何其他模块。

//  use as simple as
new Date().format('m-d-Y h:i:s');   //  07-06-2016 06:38:34

Flavor 2 dateFormat(Date, String) 更传统的多合一方法。具有前一个的所有能力,但通过带有 Date 参数的方法调用。

//  use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s');  //  07-06-2016 06:38:34

BONUS Flavor (需要 jQuery) $.date(Date, String) 这不仅仅是一个简单的格式选项。它扩展了基本的 Date 对象并包括诸如 addDays 之类的方法。有关更多信息,请参阅 Git。

在这个 mod 中,格式字符的灵感来自 PHP: date。如需完整列表,请参阅我的README

这个模组还有更长的预制格式列表。要使用预制格式,只需输入其键名。 dateFormat(new Date(), ‘pretty-a’);

‘compound’ ‘commonLogFormat’ == ‘d/M/Y:G:i:s’ ‘exif’ == ‘YⓂ️d G:i:s’ ‘isoYearWeek’ == ‘Y\WW’ ’ isoYearWeek2’ == ‘Y-\WW’ ‘isoYearWeekDay’ == ‘Y\WWj’ ‘isoYearWeekDay2’ == ‘Y-\WW-j’ ‘mySQL’ == ‘Ymd h:i:s’ ’ postgreSQL’ == ‘Yz’ ‘postgreSQL2’ == ‘Yz’ ‘soap’ == ‘Ymd\TH:i:su’ ‘soap2’ == ‘Ymd\TH:i:s.uP’ ‘unixTimestamp’ == ‘@U’ ‘xmlrpc’ == ‘Ymd\TG:i:s’ ‘xmlrpcCompact’ == ‘Ymd\tGis’ ‘wddx’ == ‘Ynj\TG:i:s’

‘commonLogFormat’ == ‘d/M/Y:G:i:s’

‘exif’ == ‘YⓂ️d G:i:s’

‘isoYearWeek’ == ‘Y\WW’

‘isoYearWeek2’ == ‘Y-\WW’

‘isoYearWeekDay’ == ‘Y\WWj’

‘isoYearWeekDay2’ == ‘Y-\WW-j’

‘mySQL’ == ‘Ymd h:i:s’

‘postgreSQL’ == ‘Yz’

‘postgreSQL2’ == ‘Yz’

‘肥皂’ == ‘Ymd\TH:i:su’

‘soap2’ == ‘Ymd\TH:i:s.uP’

‘unixTimestamp’ == ‘@U’

‘xmlrpc’ == ‘Ymd\TG:i:s’

‘xmlrpcCompact’ == ‘Ymd\tGis’

‘wddx’ == ‘Ynj\TG:i:s’

‘常量’ ‘AMERICAN’ == ‘F j Y’ ‘AMERICANSHORT’ == ‘m/d/Y’ ‘AMERICANSHORTWTIME’ == ‘m/d/Y h:i:sA’ ‘ATOM’ == ‘Ymd\ \TH:i:sP’ ‘COOKIE’ == ‘l dMY H:i:s T’ ‘EUROPEAN’ == ‘j F Y’ ‘EUROPEANSHORT’ == ‘dmY’ ‘EUROPEANSHORTWTIME’ == ‘dmY H:i: s’ ‘ISO8601’ == ‘Ymd\TH:i:sO’ ‘LEGAL’ == ‘j F Y’ ‘RFC822’ == ‘D d M y H:i:s O’ ‘RFC850’ == ‘l dMy H:i:s T’ ‘RFC1036’ == ‘D d M y H:i:s O’ ‘RFC1123’ == ‘D d MYH:i:s O’ ‘RFC2822’ == ‘D d MYH: i:s O’ ‘RFC3339’ == ‘Ymd\TH:i:sP’ ‘RSS’ == ‘D d MYH:i:s O’ ‘W3C’ == ‘Ymd\TH:i:sP’

‘美国’ == ‘F j Y’

‘AMERICANSHORT’ == ‘m/d/Y’

‘AMERICANSHORTWTIME’ == ‘m/d/Y h:i:sA’

‘原子’ == ‘Ymd\TH:i:sP’

‘COOKIE’ == ‘l dMY H:i:s T’

‘欧洲’ == ‘j F Y’

‘EUROPEANSHORT’ == ‘dmY’

‘EUROPEANSHORTWTIME’ == ‘dmY H:i:s’

‘ISO8601’ == ‘Ymd\TH:i:sO’

‘合法’ == ‘j F Y’

‘RFC822’ == ‘D d M y H:i:s O’

‘RFC850’ == ‘l dMy H:i:s T’

‘RFC1036’ == ‘D d M y H:i:s O’

‘RFC1123’ == ‘D d MYH:i:s O’

‘RFC2822’ == ‘D d MYH:i:s O’

‘RFC3339’ == ‘Ymd\TH:i:sP’

‘RSS’ == ‘D d MYH:i:s O’

‘W3C’ == ‘Ymd\TH:i:sP’

‘漂亮’ ‘漂亮-a’ == ‘g:i.sA l jS \o\f F Y’ ‘漂亮-b’ == ‘g:iA l jS \o\f F Y’ ‘漂亮- c’ == ‘n/d/Y g:iA’ ‘pretty-d’ == ‘n/d/Y’ ‘pretty-e’ == ‘F jS - g:ia’ ‘pretty-f’ == ‘g:iA’

‘漂亮-a’ == ‘g:i.sA l jS \o\f F Y’

‘漂亮-b’ == ‘g:iA l jS \o\f F Y’

‘漂亮-c’ == ‘n/d/Y g:iA’

‘漂亮-d’ == ‘n/d/Y’

‘漂亮-e’ == ‘F jS - g:ia’

‘漂亮-f’ == ‘g:iA’

您可能注意到,您可以使用双 \ 来转义字符。

@KamranAhmed 差不多 2 年和 40 多票之后,我会说努力是值得的。哈哈。从那以后我个人扩展了这个类很多,但没有上传,因为我认为大多数人会使用我看到推荐的其他 js 日期插件,但我想我应该让它更“公开”并在这里添加它。

moment.js 现在是你现在使用的东西

上面,有一个错字(我花了一段时间才发现),它在行中使用了一个变量“today”:“dayOfMonth = today +”

“今天 + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder” - JS 是愚蠢的语言。

它只是中午 39 点,打印时间为上午 12:39。

答5:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

如果您只想要一个没有时间信息的日期,请使用:

var 今天 = 新日期();今天.setHours(0, 0, 0, 0); document.write(今天);

这似乎是唯一真正回答问题的答案。其他人都回答了如何将日期格式化为字符串。

我同意。实际上我想写一个类似于这个的答案,然后弹出一个小窗口询问我是否已经阅读了所有答案。由于我只阅读了最热门的答案,我决定检查是否有任何正确答案,这个是第一个正确答案。

这使用 UTC 设置小时,这可能不适用于所有用例。

我也同意。完美回答问题。谢谢你。

答6:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

尝试这个:

var currentDate = new Date() var day = currentDate.getDate() var month = currentDate.getMonth() + 1 var year = currentDate.getFullYear() document.write(“” + day + “/” + month + “/” + 年份 + “”)

结果会像

15/2/2012

答7:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

如果您正在寻找对日期格式更精细的控制,我强烈建议您查看 momentjs。很棒的图书馆——而且只有 5KB。 http://momentjs.com/

huntsbot.com – 高效赚钱,自由工作

像魅力一样支持本地化。

这些天我们使用 date-fns - 它将日期视为不可变(Moment 改变日期),速度更快并且是模块化的(只需导入您需要的内容)。

在发布这个时刻六年后,js 已经增加了相当多的重量。您可能想改为查看 github.com/iamkun/dayjs - 我已将其描述为“节食的时刻”。相同的简单 API。

答8:

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

您可以使用 moment.js:http://momentjs.com/

var m = moment().format(“DD/MM/YYYY”); document.write(m);

仅获取当前日期,时刻就显得过大了。

或 moment().format("L") 以尊重当前语言环境。

@DanDascalescu 实际上, DateTime 的 Javascript 基本规范就是那么糟糕。

如果您已经在项目中导入了 momentjs,那么这是最简洁的答案。

答9:

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

var date = new Date().toLocaleDateString("en-US");

此外,您可以使用两个参数调用方法 toLocaleDateString:

var date = new Date().toLocaleDateString("en-US", {
    "year": "numeric",
    "month": "numeric"
});

MDN 上有关此方法的更多信息。

很好,适用于 Chrome。不幸的是,截至 2016 年 4 月 22 日,它不适用于 PhantomJS

很酷的解决方案。应该在顶部。 new Date().toLocaleDateString("de-de") 对我有用。

答10:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

var d = (new Date()).toString().split(’ ‘).splice(1,3).join(’ '); document.write(d)

将其分解为步骤:

(new Date()).toString() 给出 “Fri Jun 28 2013 15:30:18 GMT-0700 (PDT)” (new Date()).toString().split(’ ‘) 将上述字符串划分为每个空格并返回如下数组:[“Fri”, “Jun”, “28”, “2013”, “15:31:14”, “GMT-0700”, “(PDT)”] (new Date() ).toString().split(’ ‘).splice(1,3).join(’ ') 从上面的数组中取出第二个、第三个和第四个值,用空格将它们连接起来,返回一个字符串“Jun 28 2013 "

我需要 00:00:00 的时间并且不想手动重建它;第 2 步让我完美地到达那里。赞!

这样做可以节省一些字节:Date().split(' ').splice(1,3).join(' ')

答11:

huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。

这每次都有效:

var now = new Date(); var day = (“0” + now.getDate()).slice(-2); var month = (“0” + (now.getMonth() + 1)).slice(-2); var today = now.getFullYear() + “-” + (month) + “-” + (day); console.log(今天);

原文链接:https://www.huntsbot.com/qa/R312/how-do-i-get-the-current-date-in-javascript?lang=zh_CN&from=csdn

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

你可能感兴趣的:(javascript,开发语言,ecmascript,talkingdata,tomcat)