如何在Node.js Jade中显示今天的date?

我是Node.js和Jade的新手,我尝试使用#{Date.now()} ,它给了我数字。 如何以mm/dd/yy格式显示date?

你可以使用moment.js

首先,给你的快速申请当地人添加时刻

 express = require('express'); ... app = express(); app.locals.moment = require('moment'); 

那么你可以使用像这样的玉模板中的时刻:

 p #{moment(Date.now()).format('MM/DD/YYYY')} 

Moment默认需要Date.now() ,所以你也可以写:

 p #{moment().format('MM/DD/YYYY')} 

资料来源:

  • 在服务器端Jade模板中使用实用程序库
  • Moment.js

或者你可以使用moment.js库来处理date并根据你的需要设置它们的格式

这是旧的,但我做了以下几点:

 return (new Date()).toLocaleDateString() 

返回“mm / dd / yyyy”格式的date,不需要额外的库。

我实际上开始使用date-util,它是客户端和服务器端的两部分。

URL https://github.com/JerrySievert/node-date-utils

在浏览器中使用

 <script type="text/javascript" src="date-utils.min.js"></script> 

与Node.js一起使用

 $ npm install date-utils require('date-utils'); 

注意:由于Node.js如何处理REPL中的上下文,所以在Node.js 0.6之前的REPL中不起作用。

静态方法

 Date.today(); // today, 00:00:00 Date.yesterday(); // yesterday, 00:00:00 Date.tomorrow(); // tomorrow, 00:00:00 Date.validateDay(day, year, month); // true/false whether a date is valid Date.validateYear(year); // true/false whether a year is valid Date.validateMonth(month); // true/false whether a month is valid Date.validateHour(hour); // true/false whether an hour is valid Date.validateMinute(minute); // true/false whether a minute is valid Date.validateSecond(second); // true/false whether a second is valid Date.validateMillisecond(millisecond); // true/false whether a millisecond is valid Date.compare(date1, date2); // -1 if date1 is smaller than date2, 0 if equal, 1 if date2 is smaller than date1 Date.equals(date1, date2); // true/false if date1 is equal to date2 Date.getDayNumberFromName(name); // su/sun/sunday - 0, mo/mon/monday - 1, etc Date.getMonthNumberFromName(name); // jan/january - 0, feb/february - 1, etc Date.isLeapYear(year); // true/false whether the year is a leap year Date.getDaysInMonth(monthNumber); // number of days in the month 

实例方法

 d.clone(); // returns a new copy of date object set to the same time d.getMonthAbbr(); // abreviated month name, Jan, Feb, etc d.getMonthName(); // fill month name, January, February, etc d.getUTCOffset(); // returns the UTC offset d.getOrdinalNumber(); // day number of the year, 1-366 (leap year) d.clearTime(); // sets time to 00:00:00 d.setTimeToNow(); // sets time to current time d.toFormat(format); // returns date formatted with: // YYYY - Four digit year // MMMM - Full month name. ie January // MMM - Short month name. ie Jan // MM - Zero padded month ie 01 // M - Month ie 1 // DDDD - Full day or week name ie Tuesday // DDD - Abbreviated day of the week ie Tue // DD - Zero padded day ie 08 // D - Day ie 8 // HH24 - Hours in 24 notation ie 18 // HH - Padded Hours ie 06 // H - Hours ie 6 // MI - Padded Minutes // SS - Padded Seconds // PP - AM or PM // P - am or pm d.toYMD(separator); // returns YYYY-MM-DD by default, separator changes delimiter d.between(date1, date2); // true/false if the date/time is between date1 and date2 d.compareTo(date); // -1 if date is smaller than this, 0 if equal, 1 if date is larger than this d.equals(date); // true/false, true if dates are equal d.isBefore(date); // true/false, true if this is before date passed d.isAfter(date); // true/false, true if this is after date passed d.getDaysBetween(date); // returns number of full days between this and passed d.getHoursBetween(date); // returns number of hours days between this and passed d.getMinutesBetween(date); // returns number of full minutes between this and passed d.getSecondsBetween(date); // returns number of full seconds between this and passed d.add({ milliseconds: 30, minutes: 1, hours: 4, seconds: 30, days: 2, weeks: 1, months: 3, years: 2}); // adds time to existing time d.addMilliseconds(number); // add milliseconds to existing time d.addSeconds(number); // add seconds to existing time d.addMinutes(number); // add minutes to existing time d.addHours(number); // add hours to existing time d.addDays(number); // add days to existing time d.addWeeks(number); // add weeks to existing time d.addMonths(number); // add months to existing time d.addYears(number); // add years to existing time 

您将需要使用Date对象上的方法来实现您的目标。 请参阅https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

例如,下面的代码应该做你所需要的:

 var dateNow = new Date(); var dd = dateNow.getDate(); var monthSingleDigit = dateNow.getMonth() + 1, mm = monthSingleDigit < 10 ? '0' + monthSingleDigit : monthSingleDigit; var yy = dateNow.getFullYear().toString().substr(2); var formattedDate = mm + '/' + dd + '/' + yy; 

所以如果你用快递和节点来说玉,你可以这样做:

 res.render('jadeTemplateName', { dateNow: function() { var dateNow = new Date(); var dd = dateNow.getDate(); var monthSingleDigit = dateNow.getMonth() + 1, mm = monthSingleDigit < 10 ? '0' + monthSingleDigit : monthSingleDigit; var yy = dateNow.getFullYear().toString().substr(2); return (mm + '/' + dd + '/' + yy); } }) 

并在你的玉模板中说如果你想添加date到一个跨度:

 span Today's date is #{dateNow()} 

将类.post-date添加到包含date的标记中

 document.addEventListener('DOMContentLoaded', function() { var list = document.getElementsByClassName('post-date'); // get the number of selected elements // iterate over elements and output their HTML content for (var i=0; i<list.length; i++){ //console.log(list[i].innerHTML); var string=list[i].innerHTML; var length = 15; var trimmedString = string.substring(0, length); list[i].innerHTML=trimmedString ; } }) 

我find了一个解决scheme1.在帕格使用 – 语法创build一个函数2.当pug.js绑定variables到哈巴狗模板

  -function prettyDate(dateString){ -var date = new Date(dateString); -var d = date.getDate(); -var monthNames = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun","Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; -var m = monthNames[date.getMonth()]; -var y = date.getFullYear(); -return d+' '+m+' '+y; -} 3.span.post-date #{prettyDate(val.date)};