2014-07-25 7 views
0

J'utilise Node (Express.js) pour mettre à jour une base de données MySQL avec la date maintenant et ça marche bien mais mon code est un peu répétitif.Node Horodatage JavaScript au format MySQL

var newYears = new Date(); 
var newMonths = new Date(); 
var newDays = new Date(); 
var newHours = new Date(); 
var newMinutes = new Date(); 
var newSeconds = new Date(); 
var yearNow = newYears.getFullYear(); 
var monthNow = newMonths.getMonth(); 
var dayNow = newDays.getDate(); 
var hourNow = newHours.getHours(); 
var minuteNow = newMinutes.getMinutes(); 
var secondNow = newSeconds.getSeconds(); 
var timeNow = yearNow + '-' + (monthNow + 1) + '-' + dayNow + ' ' + hourNow + ':' + minuteNow + ':' + secondNow; 

Avec quel nombre de caractères le même résultat peut-il être obtenu?

Répondre

1

Vous pouvez découper certains frais généraux comme ceci:

var basedate = new Date(); 
    var yearNow = basedate.getFullYear() 
    var monthNow = basedate.getMonth(); 
    var dayNow = basedate.getDate(); 
    var hourNow = basedate.getHours(); 
    var minuteNow = basedate.getMinutes(); 
    var secondNow = basedate.getSeconds(); 
    var timeNow = yearNow + '-' + (monthNow + 1) + '-' + dayNow + ' ' + hourNow + ':' + minuteNow + ':' + secondNow; 

En variante quelqu'un d'autre pourrait mettre en place un tableau divisant les éléments constitutifs du Dateobject pour sauver quelques cycles de processeur, mais à moins que vous vous retrouvez désespérément besoin de Réduisez le temps d'exécution de votre script, ne vous inquiétez pas. Une bonne règle empirique est que si vous ne pouvez pas quantifier l'accélération, vous ne devriez pas essayer d'optimiser pour cela. Si ce n'est pas cassé ...

Par contre, vous pourriez aimer http://perlgolf.sourceforge.net/

+0

Si vous souhaitez formater la date correctement (AAAA-MM-JJ HH: MM: SS au lieu de AAAA-MD H: M: S comme vous l'avez maintenant), vous pouvez faire ceci: 'var timeNow = yearNow + ' - '+ Chaîne ('00' + (monthNow + 1)). Slice (-2) + '-' + Chaîne ('00 '+ dayNow) .slice (-2) +' '+ Chaîne ('00' + hourNow) .slice (-2) + ':' + Chaîne ('00 '+ minuteNow) .slice (-2) +': '+ Chaîne ('00' + secondNow) .slice (-2) ' – Niklas

1

Jetez un oeil à moment.js

var now = moment().add(1,'month').format("YYYY-MM-DD h:mm:ss A"); 

Voici le jsfiddle. Vous pouvez utiliser var moment = require('moment'); si vous souhaitez utiliser nodeJS. Le reste du code sera le même.

Questions connexes